7

既然Google已经添加了experimental unit test support,那么在单元测试和仪器测试中如何共享资源呢?在Android中通过单元测试和仪器测试共享资源

例如,假设我有一个TestUtils.java类,我希望在我的单元测试和仪器测试中都可以访问该类。如果我把它放在我的src/test/java文件夹中,它可以通过我的单元测试进行访问。如果我把它放在我的src/androidTest/java文件夹中,它可以通过我的仪器测试进行访问。我如何让它们都可以访问?

我现在看到的唯一解决方案是把它放在src/debug/java,但有没有更好的方法?

+0

你总是可以告诉Gradle有多个目录来源。不过,我不知道是否有更清晰的答案。 – CommonsWare 2015-03-24 22:10:53

+2

@CommonsWare好主意!添加'android.sourceSets.androidTest.java.srcDirs = ['src/androidTest/java','src/test/java']'反之亦然 – skoush 2015-03-24 23:01:04

+0

本文涵盖了确切的主题:http://blog.danlew .net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/ – 2017-08-26 11:18:41

回答

1
android { 
    sourceSets { 
    String sharedTestDir = 'src/sharedTest/java' 
    test { 
     java.srcDir sharedTestDir 
    } 
    androidTest { 
     java.srcDir sharedTestDir 
    } 
    } 
} 
+1

尽管此代码可能会回答问题,提供有关* why和/或* how的其他上下文*这个代码回答这个问题提高了它的长期价值。 – 2016-03-26 07:27:11

+1

关于在模块中执行此操作有什么用? – karate 2017-01-15 14:13:15