Android Studio 1.5创建的工程,会生成两个默认的测试目录:test
,androidTest
,其中,test
目录为在本机执行单元测试代码的目录,androidTest
为在Android设备上执行单元测试代码的目录。
目录如下图所示:
对于新建的工程,默认会生成相应的测试代码例子。如下图所示:
请注意上图的两个文件图标的差别,一个文件的图标的右上角是两个三角标记,另一个文件的右下角是个时钟的标记。
右击androidTest
目录下的ApplicationTest.java
,就会出现执行测试用例的菜单。如下图:
但是当右击test
目录下的ExampleUnitTest.java
则没有任何的运行菜单。如下图:
那么,如何执行test
目录下的ExampleUnitTest.java
呢?
操作方法为"View"
->"Tool Windows"
->"Build Variants"
,然后,切换Test Artifact
从Android Instrumentation Tests
到Unit Tests
。
如下图:
切换Test Artifact
可以看到,切换完成后,两个文件的图标互换了一下:
此时右击test
目录下的ExampleUnitTest.java
则会出现Run 'ExampleUnitTest'
,Debug 'ExampleUnitTest'
的菜单了。
如下图:
至于
1 2 |
Test running startedTest running failed: Instrumentation run failed due to 'java.lang.RuntimeException' Empty test suite |
这个问题,是由于Android Studio 的BUG,导致的,一般是没有执行上述的切换命令,然后右击test
目录下的ExampleUnitTest.java
依旧会出现Run 'ExampleUnitTest'
,Debug 'ExampleUnitTest'
的菜单,然后点击后,会让我们选择运行的设备,这个时候,明显是把我们当作可以在设备上运行的测试用例了,因此,找不到是必然的。
应对这个BUG的解决方法,就是清理代码,然后重新加载工程,一般可以解决这个问题了。
不错,很明了
感谢您在文章最后您在最后关于“Instrumentation run failed due to 'java.lang.RuntimeException'
Empty test suite”问题的文字,解决了我的问题。
但我觉得说的步骤有些模糊,我的做法是直接使用Gradle clean代码,然后再重新运行是OK了。
还有您说如果是Android Studio的Bug,请问您是在哪里看到的说明,可否将它贴出来。谢谢。
Android Studio早期版本BUG蛮多的,最近升级到2.1以上的版本,稳定性,BUG要少了很多了,这些BUG是由于IntelliJ IDEA 的预先编译导致的,一方面预先编译好的文件会大大加快编译速度,另一方面,不可避免有时候会出现文件已经变化,但是却没有重新生成代码的情况。
哦,谢谢,那还想请教下,您了不了解有什么办法在AndroidTestCase上进行多线程的测试?
暂时还没有涉及到多线程测试的,抱歉。