AJD*_*AJD 60 junit android android-studio
所以我正在尝试我们的Android Studio并测试一个在eclipse中工作的项目.我得到了所有编译,应用程序将启动就好了,但我不能让我的单元测试和工作.我最终通过添加我的应用程序lib文件夹作为依赖项来编译它们,但我不认为我的运行配置是正确的,因为无论何时我运行我的测试我都会收到此错误
Installing <packagename>
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/<packagename>"
pkg: /data/local/tmp/<packagename>
Success
Running tests
Test running started
Test running failed: Unable to find instrumentation info for: ComponentInfo{<packagename>/android.test.InstrumentationTestRunner}
Empty test suite.
Run Code Online (Sandbox Code Playgroud)
编辑:对于所有新来的人,自我最初发布此问题以来,Android Studio的状态发生了很大变化,但许多有用的人继续发布他们针对此错误的特定解决方案.我建议先主动排序并先查看最新的答案.
tho*_*ers 61
如果您在此类中定义了testInstrumentationRunner build.gradle:
android {
defaultConfig {
testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
Run Code Online (Sandbox Code Playgroud)
确保在运行配置窗口中使用Android Studio/IntelliJ运行配置中完全相同的"特定仪器运行器"进行测试.
Ben*_*enL 18
解释和解决方案
如果在测试应用程序的清单中声明的targetPackage与正在测试的应用程序的清单中声明的包不同,则会出现此错误" 无法找到检测 ":
正在测试的应用:
<manifest package="com.example.appbeingtested" … >
Run Code Online (Sandbox Code Playgroud)测试应用:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.appbeingtested" … />
Run Code Online (Sandbox Code Playgroud)ald*_*dok 16
我通过改变解决了这个问题
android.test.InstrumentationTestRunner
Run Code Online (Sandbox Code Playgroud)
成
com.android.test.runner.MultiDexTestRunner
Run Code Online (Sandbox Code Playgroud)
在EditConfigurations - > Specific Instrumentation Runner(可选)选项卡中.
事实证明,因为我的应用程序正在使用MultiDex,我还需要将测试运行器更改为MultiDexTestRunner.
更新:
作为@dan评论,InstrumentationTestRunner不推荐使用AndroidJUnitRunner.
我曾经遇到过这个错误。我在 CLI 模式下使用 sdk 工具。当我在测试项目中启动“ant test”时发生错误。后来我注意到我之前甚至没有构建和安装测试项目!(使用“ant debug install”)因此,您应该在运行测试之前尝试检查您的运行配置,看看测试项目是否已有效构建。对于另一种情况,Android Studio 使用 Gradle。我不太了解,但尝试检查项目的 Gradle 设置或 Gradle 设置文件。
| 归档时间: |
|
| 查看次数: |
40413 次 |
| 最近记录: |