Android单元测试未报告失败失败()

时间:2013-12-17 19:42:34

标签: android unit-testing ant junit

我编写了一个单元测试,只是扩展了TestCase,我有以下内容:

public class MetricParserTests extends TestCase {

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }

    public void testFailure() {
        fail("This needs to fail");
    }
}

当我使用ant testadb shell am instrument运行测试时,我得到以下结果:

  

... [exec] OK(1次测试)......

我希望在命令行上看到失败。

3 个答案:

答案 0 :(得分:1)

我相信我知道这是什么问题。我能够重现问题并解决它。您使用的命令不会将测试项目重建并重新安装到设备上。当您致电ant test时,它只会执行已安装在该设备上的测试。

您需要调用的是测试项目目录中的三个命令:

ant debug
ant installd
ant test

然后将重建并重新安装所有测试,并执行最新测试。如果您不致电debuginstalld,则您对测试所做的更改不会得到应用。

答案 1 :(得分:0)

我没有最近的Android测试经验,但这是我发现的......

如果您的代码完全与Android分离,则可以使用常规JUnit测试(请参阅here 例如)。这将使用JUnit运行程序在您的 JVM上运行。

但是,如果您尝试在Android设备上运行这些测试(通过ant或命令行工具),那么您需要创建一个完整的Android测试项目(请参阅here)。 在设备上测试&#34;&#34;您的测试用例需要扩展其中一个Android测试类,例如ActivityInstrumentationTestCase2<T> 并使用Android设备上Dalvik VM中的InstrumentationTestRunner运行。 使用IDE或命令行工具创建测试项目应该创建一个样本测试供您使用。

与上述帖子的评论相关联的

This blog post是一个很好的信息来源,Android Testing Fundamentals doc也是如此。

答案 2 :(得分:-1)

方法testFailure()没有@Test注释。这是对的吗?