java - Android - 代码覆盖率测试错误

标签 java android unit-testing junit intellij-idea

到目前为止,我已经尝试在 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/

相关文章:

java - 在android中比较包含时间的字符串与系统时间

java - 应用程序在 recyclerViewPager 上运行时不显示任何内容

unit-testing - 如何比较/匹配模拟中的闭包?

c++ - C/C++涉及2个进程时如何使用fake function framework?

java - Nimbus Look&Feel refresh Painter

java - 改造和 OkHttp gzip 解码

java - Hibernate JPA 约束冲突和事务已激活

java - html View 中的 iText 等宽字体,带有 css 样式的粗体、斜体

android - 如何使用 Kotlin 和可待因结构在改造中拥有多个基本 URL

iOS 单元测试私有(private)模拟对象?