我在这里用头撞墙,试图找出为什么 IntelliJ/Android 报告“空测试套件”。我有一个带有两个 IntelliJ 模块的小项目(Eclipse 中的“项目”)。单元测试模块有自己的 AndroidManifest.xml,我已将其粘贴在底部。我正在尝试运行一个ActivityUnitTestCase
,因为测试将取决于Context
-object.
主模块的包名是nilzor.myapp
。测试模块的包名是nilzor.myapp.tests
为什么测试运行者没有检测到testBlah()
-作为测试的方法?
<?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);
}
}
我已阅读测试基础知识, the 活动测试文件,并尝试遵循此你好世界测试博客,即使它是针对 Eclipse 的。我无法让测试运行程序找到并运行我的测试。我究竟做错了什么?
我仍然不确定的一些问题是:
- 我需要在单元测试方法上方添加注释吗?
- 我是否需要在方法前加上“test”前缀,还是仅用于 JUnit 测试?
- 我可以在子包中进行测试吗
nilzor.myapp.tests
?
但这篇文章的主要问题是为什么测试运行程序没有检测到我的测试?
您需要为测试类提供默认构造函数,例如:
package nilzor.myapp.tests;
public class NilzorSomeTest extends ActivityUnitTestCase<ActivityYouWantToTest>{
public NilzorSomeTest(){
super(ActivityYouWantToTest.class);
}
@SmallTest
public void testBlah(){
assertEquals(1,1);
}
}
关于您的其他问题:
不。我的测试仍然可以在没有任何注释的情况下运行,但我想拥有它们是一个很好的做法。它允许您指定要运行的测试的大小。看Android 中@SmallTest、@MediumTest 和@LargeTest 注解的用途是什么?了解更多详情。
是的,您需要“测试”前缀。当没有“test”前缀时,InteliJ 会发出“从未使用过的方法”警告,并在测试运行期间跳过该方法。
是的。我将测试组织成子包,并且似乎运行良好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)