我编写了一个单元测试,只是扩展了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 test
或adb shell am instrument
运行测试时,我得到以下结果:
... [exec] OK(1次测试)......
我希望在命令行上看到失败。
答案 0 :(得分:1)
我相信我知道这是什么问题。我能够重现问题并解决它。您使用的命令不会将测试项目重建并重新安装到设备上。当您致电ant test
时,它只会执行已安装在该设备上的测试。
您需要调用的是测试项目目录中的三个命令:
ant debug
ant installd
ant test
然后将重建并重新安装所有测试,并执行最新测试。如果您不致电debug
和installd
,则您对测试所做的更改不会得到应用。
答案 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注释。这是对的吗?