在Android Studio中创建新项目时,我注意到它会自动在/ src下创建一个/ androidTest目录,其中有“ApplicationTest.java”类,其中包含以下代码:
public class ApplicationTest extends ApplicationTestCase<Application> {
public ApplicationTest() {
super(Application.class);
}
}
我猜这是Google希望我们使用的内容,但在搜索了几个小时后,我无法弄清楚如何使用为我生成的这个类。谷歌的官方文档似乎只列出了如何在Eclipse IDE(而不是Android Studio)上运行,我找不到任何可以让我执行简单测试的代码(比如assertEquals(1,2)
)。有人可以告诉我如何使用上面的默认模板编写一个简单的测试代码,并介绍如何运行它,最好是从命令行?
编辑: 我能够编写一个旨在失败的简单测试。 / strongTest / java / path / to / package /
中的 ApplicationTest.javapublic class ApplicationTest extends ApplicationTestCase<Application> {
public ApplicationTest() {
super(Application.class);
}
@Override
protected void setUp() throws Exception {
createApplication();
}
@SmallTest
public void testMultiply() {
assertEquals("This should not pass ", 50, 49);
}
}
我可以从Android Studio运行它,但我无法弄清楚如何从命令行运行它。有什么帮助吗?
答案 0 :(得分:0)
正如Jared已经说过的,这是一个仪器测试的示例设置。 我想,你已经看过了这个:Testing Fundamentals
在android studio中运行这些测试的最简单方法是右键单击该类并单击运行。 也可以在运行/调试配置中添加测试。
<强>更新强>
要在命令行上运行检测测试,请使用./gradlew assembleAndroidTest
。此命令将运行src/androidTest
(检测测试)文件夹中的所有测试。
正如njzk2所述,还有一个./gradlew assembleTest
命令。此命令用于运行所有单元测试(应放在src/test
文件夹中)。有关android中单元测试的更多信息,请查看:Android Unit Testing Support
示例:强>
这是android中的一个仪器测试示例:
@Override
public void setUp() throws Exception {
super.setUp();
InputStream is = getContext().getAssets().open("test.xml");
XmlParser parser = new XmlParser(getContext());
parser.parse(is);
...
}
@MediumTest
public void testSomething() throws Exception {
// test some data your parser extracted from the xml file
...
}
如您所见,我需要创建输入流的上下文,因此我必须进行仪器测试。 @MediumTest
信号,例如我正在从存储中访问文件(请参阅Test Annotations)。