gpt4 book ai didi

java - 获取 junit.framework.AssertionFailedError : No tests found in [package] when using Unit and Mockito

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:52:12 27 4
gpt4 key购买 nike

我在我的 android 项目中添加了以下依赖项:

 // Unit testing dependencies
androidTestCompile 'junit:junit:4.12'
// Set this dependency if you want to use Mockito
androidTestCompile 'org.mockito:mockito-core:1.10.19'

并使用 junit4 api 创建一个测试(例如,Adder 是一个对 int 求和的简单类):

@RunWith(MockitoJUnitRunner.class) 
public class AdderTest {

@Test
public void testValidAdd() {
Adder adder = new Adder();
assertEquals(adder.add(1,1), 2);
}
}

当我尝试运行测试时,我得到:

Running tests Test running started junit.framework.AssertionFailedError: No tests found in com.test.myapp.AdderTest at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701) Finish

我读了herehere , 但没有任何帮助。

有人看到我做错了什么/有任何意见吗?

最佳答案

这些不是单元测试,它们是仪器测试。我遇到了同样的问题并通过将这些行添加到模块的 build.gradle 中解决了这个问题:

android {
...
sourceSets {
...
defaultConfig {
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}
}
}

你必须在依赖项中添加运行者,我建议你喝 espresso:

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'

编辑:

我忘记了注释。只需删除 @RunWith 并使用以下行创建 @Before 方法:

MockitoAnnotations.initMocks(this);

或:

System.setProperty("dexmaker.dexcache", InstrumentationRegistry.getTargetContext().getCacheDir().getPath());

我不得不提的是不推荐这种方式。要使用第二个,您必须为 mockito 添加 dex-maker 的依赖项:

androidTestCompile ('com.google.dexmaker:dexmaker-mockito:1.2') {
exclude module: 'mockito-core'
}

由于您已经添加了 mockito,我们必须从新的依赖项中排除 mockito 核心。它已经包含了普通的 dex-maker 模块。

关于java - 获取 junit.framework.AssertionFailedError : No tests found in [package] when using Unit and Mockito,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31868008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com