首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Android依赖项和robolectric运行Junit5测试

如何使用Android依赖项和robolectric运行Junit5测试
EN

Stack Overflow用户
提问于 2017-10-27 08:50:53
回答 2查看 3.8K关注 0票数 12

我试图像这样运行一个单元测试:

代码语言:javascript
复制
    @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支持最可行的途径是什么,或者我缺少什么(明显的)概念?

EN

回答 2

Stack Overflow用户

发布于 2018-07-27 23:46:45

我也在尝试这样做,但在撰写本文时,Robolectric似乎根本不支持junit5。

参见这里的讨论:https://github.com/robolectric/robolectric/issues/2996

讨论中描述了一些解决办法,但现在我只想继续讨论junit4。

票数 3
EN

Stack Overflow用户

发布于 2021-07-12 08:31:18

您可以使用junit-vintage-engine与来自JUnit4的运行程序一起运行测试。

只需将org.junit.vintage:junit-vintage-engine添加到依赖项中,就可以将org.junit.runner.RunWith注释添加到测试中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46971063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档