Android - 代码覆盖率测试错误

时间:2013-12-01 20:43:11

标签: java android unit-testing junit intellij-idea

到目前为止,我一直试图通过代码覆盖率进行测试,以便在IntelliJ中工作几个小时,但没有成功。

首先: “以覆盖率>运行”没有包含在项目中的junit会产生以下错误(显然)

  

线程“main”中的异常java.lang.NoClassDefFoundError:junit / textui / ResultPrinter

将junit 4.11和hamcrest-core 1.3添加到库中,然后“以覆盖率运行”:

  

!!!预期JUnit 3.8或更高版本:

     

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");
    } 
}

我用Google搜索并用Google搜索,但是到目前为止我找不到任何解决方案。

1 个答案:

答案 0 :(得分:0)

如果您要测试testMakeTextView方法,则应使用@Test符号对其进行注释。 所以

@Test
public void testMakeTextView()

同样,setUp()方法有一个@Before注释,而不是我认为的@Override。