我试图像这样运行一个单元测试:
@org.junit.jupiter.api.Test
void junit5codeCoverage() {
final int result = new Foo().junit5();
Assert.assertEquals(Looper.getMainLooper().getThread(), Thread.currentThread());
assertEquals(-1, result);
}这是一个带有Android依赖项的Junit5测试(即Looper.getMainLooper())。
我使用的是mannodermaus的junit5安卓插件,它允许在安卓设置中运行junit5。但这并不是开箱即用的,因为它不会加载计量器。因此,我尝试了阿利克斯瓦氏支来解决频域和junit5测试覆盖率问题,但仍然不使用Android类。
此外,我还开始研究如何在junit5上运行一个快速测试,这需要了解RobolectricTestRunner是如何工作的,以及如何将代码移植到JUnit5平台。我对新的junit5平台知之甚少,但我发现我可以在org.junit.platform.runner.JUnitPlatform运行程序之上构建,以遵循测试运行程序的概念,这是junit-platform-runner包的一部分。但这与最初的Junit4 SandBoxTestRunner相距甚远,以至于我无法完成端口。
那么,实现频密junit5支持最可行的途径是什么,或者我缺少什么(明显的)概念?
发布于 2018-07-27 23:46:45
我也在尝试这样做,但在撰写本文时,Robolectric似乎根本不支持junit5。
参见这里的讨论:https://github.com/robolectric/robolectric/issues/2996
讨论中描述了一些解决办法,但现在我只想继续讨论junit4。
发布于 2021-07-12 08:31:18
您可以使用junit-vintage-engine与来自JUnit4的运行程序一起运行测试。
只需将org.junit.vintage:junit-vintage-engine添加到依赖项中,就可以将org.junit.runner.RunWith注释添加到测试中。
https://stackoverflow.com/questions/46971063
复制相似问题