Chr*_*ine 42 android robolectric android-studio android-gradle-plugin
在尝试让Robolectric RC3在Android Studio中运行时,我得到了
Caused by: java.lang.RuntimeException: build/intermediates/bundles/debug/AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml
at org.robolectric.manifest.AndroidManifest.validate(AndroidManifest.java:120)
at org.robolectric.manifest.AndroidManifest.getResourcePath(AndroidManifest.java:469)
at org.robolectric.manifest.AndroidManifest.getIncludedResourcePaths(AndroidManifest.java:475)
at org.robolectric.RobolectricTestRunner.createAppResourceLoader(RobolectricTestRunner.java:479)
at org.robolectric.RobolectricTestRunner.getAppResourceLoader(RobolectricTestRunner.java:471)
at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:73)
at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:421)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:234)
Run Code Online (Sandbox Code Playgroud)
我试过了
@Config(manifest = "app/src/main/AndroidManifest.xml", constants = BuildConfig.class, sdk=21)
Run Code Online (Sandbox Code Playgroud)
我尝试在我的TestRunner中设置清单位置,没有任何效果.在文件系统中,我看到清单在
./app/build/intermediates/manifests/full/debug/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
不在Robolectric寻找它的位置.有一次,清单被忽略了,然后资源发生了类似的问题,应用程序或Robolectric找不到我的应用程序使用的原始资源.这是在我的构建文件中:
sourceSets {
main {
java.srcDirs = ['src/main/java']
resources.srcDirs = ['src/main/res']
}
test {
java.srcDirs = ['src/test/java', 'src/main/java']
resources.srcDirs = ['src/test/res', 'src/main/res']
}
}
Run Code Online (Sandbox Code Playgroud)
我如何告诉Robolectric在哪里寻找清单,更重要的是,在哪里寻找资源?
编辑:我已经从github检查了Robolectric,我已经构建了它,将它安装在我当地的.m2 repo中,gradle文件现在引用了本地SNAPSHOT构建,我确保Gradle没有从一个新版本获得远程回购.然后我将RobolectricGradleTestRunner复制到我的项目中,我更改了定义文件位置的行:它不包含模块名称.现在它有效.
J.C*_*rro 73
我假设您正在尝试使用JUnit运行测试.你可以尝试两种不同的东西:
@Config
注释为测试运行器指定它们的测试./app
(对于OSX和Linux)或\app
(Windows)附加到文本框中写入的路径.尝试再次运行它应该工作.小智 65
Android Studio上的问题相同.我已经解决了这个问题来编辑Unit4的配置.你可以遵循这些事情.
在Android Studio上.
重要的是$ MODULE_DIR $.
您可以参考以下屏幕截图.谢谢.
我遇到了同样的错误,我们使用了几种口味和构建类型因此,有一些步骤可以使它工作:
您还必须在Windows中将工作目录设置为$ MODULE_DIR $.http://robolectric.org/getting-started/应该这样说.
单元测试应该注释如下:
@RunWith(RobolectricTestRunner.class)@Config(constants = BuildConfig.class,sdk = 21,manifest ="src/main/AndroidManifest.xml",packageName ="com.example.yourproject")public class SomeFragmentTest {
如果您仍然在Android Studio 3.0中收到此错误,请确保您的gradle配置包含以下参数:
android {
...
testOptions {
unitTests {
includeAndroidResources = true
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19775 次 |
最近记录: |