2016-09-15 75 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/