我的build.gradle文件中设置了模块依赖项:
dependencies
{
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.2.0'
androidTestCompile fileTree(dir: 'libs/test', include: ['*.jar'])
}
在我的libs文件夹中,我拥有构建应用程序所需的所有库。我放置了在名为“test”
的子文件夹中运行测试所需的库这似乎在我的代码编译时起作用,我可以创建我的模块。但是,当我尝试运行任何测试时,它无法找到我试图包含的测试库。 Gradle控制台中的错误实际上指向我的代码中没有显示任何错误的部分。
另外,我的测试设置正确,因为我可以通过将所需的jar移动到libs文件夹并将我的依赖项更改为:
来运行它们。dependencies
{
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.2.0'
}
但是,如果不能正常工作,我真的没有看到androidTestCompile的重点。如果我不需要,我也不想在我的apk中包含这些jar文件。
如果有帮助,我使用的是Android工作室版本1.2.2和Gradle插件版本1.2.3。
提前感谢您的帮助。
答案 0 :(得分:5)
见下面的例子。
创建与 src 文件夹并行的 测试文件夹 。 将所有测试用例创建到该文件夹中。 如果你将文件夹创建到另一个路径,你需要调用它。(添加到代码中。)
dependencies {
androidTestCompile files('libs/dexmaker-1.1.jar')
androidTestCompile files('libs/org.mockito:mockito-core:3.9.5')
androidTestompile files('espresso-1.0-SNAPSHOT-bundled.jar')
}
defaultConfig {
testApplicationId "xxx.xx.abc"
testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
instrumentTest {
java.srcDirs = ['tests/src']
}
androidTest.setRoot('tests')
androidTest.java.srcDirs = ['tests/src']
答案 1 :(得分:1)
您应该使用sourceSets让您的apk免受测试库的影响 Gradle User Guide 使用' main'一个用于您的生产代码和' androidTest'一个用于测试,gradle然后自动添加指定的源。
sourceSets {
main {
...
}
androidTest {
...
}
}