2016-09-15 74 views
3

我有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的正确方法是什么?

+4

http://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/ – IuriiO

+0

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

+0

好吧,这个怎么样:http://trickyandroid.com/android-test-tricks-sharing-code-between-unit-ui-tests/ – IuriiO

回答

2

@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/