2016-09-15 4 views
3

Androidスタジオで働くアンドロイドアプリプロジェクトを持っています。 私のアプリケーションファイルは、私のユニットテストはmy.package.unittestパッケージ にあり、私のエスプレッソテストは、私はunittestのパッケージの下に私が持っている1つのクラスを使用する必要が私のエスプレッソ試験の一つでmy.package.androidtestパッケージtestとandroidTestのテストクラスを共有する

である my.packageパッケージに含まれていますしかし、私はできません。

私が使用する必要があること

unittestのクラスは、アプリ/ SRC /テスト/ Javaのフォルダにあります。

package my.package.unittest; 
public class HelperClass { 
... 
} 

そして、私はそれを使用しようとしていたファイルは、アプリ/ SRC/androidTest/Javaでありますフォルダ:

package my.package.androidtest; 

import static my.package.unittest.*; 

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class AppTest { 
    HelperClass.staticMethod(); 
} 

私が手にエラーがある:

:シンボルhelperClassの

追加情報を解決することはできません210

これは "シンボルを解決できません"というエラーです。

私のエスプレッソテストでUnitTestsからこのHelperClassを使用する正しい方法は何ですか?

+4

http://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/あなたのコメントのために – IuriiO

+0

Thx!残念ながら、あなたのブログに記載されているように動作させることはできませんでしたが、それは私に非常に良い方向を与えました。私はskoushのコメントから取った 'sourceSets {androidTest {java.srcDirs = ['src/androidTest/java'、 'src/test/java']}}' ://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" 
    } 
} 

アンドロイド閉鎖外にこのどこかに置いてください。

4 - >楽しんでください!

資源:

http://trickyandroid.com/android-test-tricks-sharing-code-between-unit-ui-tests/

関連する問題