运行由Android Studio

时间:2015-08-12 00:00:43

标签: android android-studio

在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.java
public 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运行它,但我无法弄清楚如何从命令行运行它。有什么帮助吗?

1 个答案:

答案 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)。