在测试和androidTest之间分享测试类
问题描述:
我有Android应用程序项目,在Android Studio中工作。 我的应用程序文件都在my.package
包 我的单元测试是在my.package.unittest
包 我的咖啡测试是在my.package.androidtest
包在测试和androidTest之间分享测试类
在我的咖啡测试中,我需要使用一个类,我有单元测试包下一个,但我无法。
单元测试类,我需要使用位于应用程序/ src目录/测试/ java文件夹:
package my.package.unittest;
public class HelperClass {
...
}
,我试图在使用它的文件在app/src目录/ androidTest/JAVA文件夹:
package my.package.androidtest;
import static my.package.unittest.*;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class AppTest {
HelperClass.staticMethod();
}
我得到的错误是:无法解析符号助手类
附加信息:
import my.package.unittest.HelperClass;
这本身给出了“无法解析符号”错误。
在我的Espresso测试中,从我的UnitTests中使用此HelperClass
的正确方法是什么?
答
@Jeremy Kao指出了正确的答案。
1 - >在app/src中创建一个目录。你可以称之为testShared。
2 - >把你的类放在这个目录中。
3 - >内部应用程序/的build.gradle地说:
android.sourceSets {
test {
java.srcDirs += "$projectDir/src/testShared"
}
androidTest {
java.srcDirs += "$projectDir/src/testShared"
}
}
的的Android封闭外将这个任何地方。
4 - >玩得开心!
资源:
http://trickyandroid.com/android-test-tricks-sharing-code-between-unit-ui-tests/
http://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/ – IuriiO
Thx为您的评论!不幸的是,我不能像你的博客中描述的那样工作,尽管它给了我很好的方向。最后,我使用:'sourceSets {androidTest {java.srcDirs = ['src/androidTest/java','src/test/java']}}',这是我从这个[question]的skoush评论中拿出来的(http ://stackoverflow.com/questions/29243787/sharing-resources-across-unit-tests-and-instrumentation-tests-in-android)。你的方法似乎更加整洁,但由于我对gradle不太好,我无法找出为什么它不起作用。 – Jeni
好吧,这个怎么样:http://trickyandroid.com/android-test-tricks-sharing-code-between-unit-ui-tests/ – IuriiO