我正试图弄清楚为什么IntelliJ/Android报告“空测试套件”。我有一个包含两个IntelliJ模块的小项目(Eclipse中的“项目”)。单元测试模块有它自己的AndroidManifest.xml,我已经将它粘贴在底部。我正在尝试运行ActivityUnitTestCase
,因为测试将依赖于Context
-object。
主模块的包名为nilzor.myapp
。测试模块的包名称为nilzor.myapp.tests
为什么测试运行器没有将testBlah()
-method检测为测试?
<?xml version="1.0" encoding="utf-8"?>
<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nilzor.myapp.tests"
android:versionCode="1"
android:versionName="1.0">
<!-- We add an application tag here just so that we can indicate that
this package needs to link against the android.test library,
which is needed when building test cases. -->
<application>
<uses-library android:name="android.test.runner"/>
</application>
<!--
This declares that this application uses the instrumentation test runner targeting
the package of nilzor.myapp. To run the tests use the command:
"adb shell am instrument -w nilzor.myapp.tests/android.test.InstrumentationTestRunner"
-->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="nilzor.myapp"
android:label="Tests for nilzor.myapp"/>
</manifest>
下面是我的测试类:
package nilzor.myapp.tests;
public class NilzorSomeTest<T extends Activity> extends ActivityUnitTestCase<T>{
public NilzorSomeTest(Class<T> activityClass){
super(activityClass);
}
@SmallTest
public void testBlah(){
assertEquals(1,1);
}
}
我已经阅读了testing fundamentals和activity testing document,并尝试使用这个Hello world test blog,尽管它是针对Eclipse的。我无法让测试运行者找到并运行我的测试。我做错了什么?
我仍然不确定的一些问题是:
nilzor.myapp.tests
的子包中包含测试
但是这篇文章的主要问题是为什么测试运行者没有检测到我的测试
发布于 2013-01-20 20:42:21
您需要为测试类提供默认构造函数,例如:
package nilzor.myapp.tests;
public class NilzorSomeTest extends ActivityUnitTestCase<ActivityYouWantToTest>{
public NilzorSomeTest(){
super(ActivityYouWantToTest.class);
}
@SmallTest
public void testBlah(){
assertEquals(1,1);
}
}
关于你的其他问题:
发布于 2016-07-05 02:00:05
如果这是“突然”发生的,或者“它在5分钟前还在工作”,我的解决方案是进入运行/调试配置,并删除"Android测试“下的所有配置。有时,如果我重构测试中的类(例如,通过移动到新的包),这些配置就会被破坏。
发布于 2016-09-20 00:54:08
我也遇到过类似的问题。我不确定为什么会发生这种情况,但我可以通过在Android Studio中进入“文件”>“无效缓存/重启”来修复它。
https://stackoverflow.com/questions/14381694
复制相似问题