到目前为止,我已经尝试在 IntelliJ 中进行代码覆盖率测试几个小时,但没有成功。
首先: 项目中不包含 junit 的“Run withcoverage>”会产生以下错误(显然)
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
将 junit 4.11 和 hamcrest-core 1.3 添加到库中,然后“覆盖运行”:
!!! JUnit version 3.8 or later expected:
java.lang.RuntimeException: Stub!
现在,我已经了解到更改模块选项中的依赖顺序可以解决此问题。 因此,更改订单后,我收到此错误:
junit.framework.AssertionFailedError: Exception in constructor: testMakeTextView (java.lang.NoClassDefFoundError: be/dave/DiversoScoreApp/MyActivity
at be.dave.DiversoScoreApp.MyActivityTest.<init>(MyActivityTest.java:20)
指向下面的代码:
public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> {
MyActivity myActivity;
public MyActivityTest() {
super("be.dave.DiversoScoreApp", MyActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
myActivity = getActivity();
}
public void testMakeTextView() throws Exception {
TextView textView = myActivity.makeTextView("Test-text", 50);
TextView textView1 = myActivity.makeTextView("Diverso", 75);
assertEquals("TextView Text should be correct", textView.getText(), "Test-text");
assertNotSame("TextView Text should fail", textView1.getText(), "Not Diverso");
}
}
我用谷歌搜索了又搜索,可惜到目前为止我还没有找到解决方案。
最佳答案
如果您尝试测试 testMakeTextView 方法,您应该使用 @Test 符号对其进行注释。 所以
@Test
public void testMakeTextView()
setUp() 方法还有一个 @Before 注释,而不是我认为的 @Override。
关于java - Android - 代码覆盖率测试错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20317029/