所以我开始使用名为MyCoolObjectTest的UnitTest。需要进行一些检测测试,我通过拖动将类在Android
项目视图中从test
目录移动到androidTest
目录。我的UnitTest曾经很好地工作;除了仪表部分。但现在它根本不起作用。我一直在
Class not found: "com.mypkg.MyCoolObjectTest"Empty test suite.
我一直在寻找遍布stackOverflow和官方文档的解决方案。到目前为止没有运气。有没有人经历过类似的事情?
(如果我将它拖回测试文件夹,它会工作;如果我重新拖动到androidTest文件夹,它会再次停止工作)
我记得这是一种设置被测试文件夹的方法。但我不记得了。
对于某些见解,我想在我的测试中使用一些安卓库,例如
public String stripFormatting(String input){
return Html.fromHtml(input).toString();
}
这就是我需要仪器的原因。
这是我的单元测试类,其中包含一个测试示例:
@RunWith(AndroidJUnit4.class)
public class MyCoolObjectTest {
@Test
public void testJustToKnow() {
String actual = "<b>0</b>";
String expected = "0";
assertThat(stripFormatting(actual), equalTo(expected));
}
public String stripFormatting(String input) {
return Html.fromHtml(input).toString();
}
}
更新
这是我得到的不同痕迹。如果我单击该方法而不是类,我会得到以下跟踪:
刚才我点击了方法而不是全班,并获得了以下跟踪:
11/04 13:51:16:启动testJustToKnow()$ adb push /Users/me/StudioProjects/Myapp/app/build/outputs/apk/app-debug.apk /data/local/tmp/com.mypkg.myapp $ adb shell pm install -r “/ data /local/tmp/com.mypkg.myapp”pkg: /data/local/tmp/com.mypkg.myapp成功
$ adb push /Users/me/StudioProjects/Myapp/app/build/outputs/apk/app-debug-androidTest-unaligned.apk /data/local/tmp/com.mypkg.Myapp.test $ adb shell pm install -r “/data/local/tmp/com.mypkg.myapp.test”pkg: /data/local/tmp/com.mypkg.myapp.test成功
运行测试
$ adb shell am instrument -w -r -e debug false -e class com.mypkg.myapp.utils.MyCoolObjectTest#testJustToKnow com.mypkg.myapp.test / android.test.InstrumentationTestRunner客户端没有 准备好了......试运行开始了
junit.framework.AssertionFailedError:未找到任何测试 com.mypkg.myapp.utils.MyCoolObjectTest at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) 在 android.app.Instrumentation $ InstrumentationThread.run(Instrumentation.java:1959)
测试已完成。
答案 0 :(得分:4)
我遇到了同样的问题。以下是我解决它的方法:
现在一切都应该有效。
答案 1 :(得分:0)
也许这会有用:
src / test :仅用于单元测试(不涉及android框架)。
src / androidTest :用于Android检测测试。
请参阅here更好的解释。
Example of instrumentation test(请检查您的注释,例如@RunWith(AndroidJUnit4.class)
或@SmallTest
或@Test
)
我希望这对你有用。
<强>(更新)强>
也许你在你的平板上忘记了这个(在主模块中):
android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
如果您使用Espresso,则必须添加依赖项(请检查上面的链接“......仪器测试示例...”)