2016-07-04 9 views
6

Android Studioは署名付きapkを生成する前にテストを実行すると考えます。署名付きapkを生成する前にテストを実行するにはどうすればよいですか?

しかし、ASは私のためにそれをしませんでした。私のAPKをパッケージ化する前にうまくいきません、自分でテストを実行する必要があります。

dependsOnなどの方法で助けてもらえませんか。私のbuild.gradleには間違いがありますか?多分このようなのGradleで

いくつかの関連するコード:

defaultConfig { 
    applicationId "com.xx.xx" 
    versionCode getDefaultVersionCode() 
    minSdkVersion 19 
    targetSdkVersion 19 
} 
dependencies { 
    testCompile 'org.robolectric:robolectric:3.0' 
    testCompile 'junit:junit:4.12' 
} 

私はtestOptionを書いていません。私はAndroidの開発に慣れていないんだけど、私はあなたにこのどこかを追加することで、あなたの意図を実現することができると思い

enter image description here

答えて

2

私のディレクトリには、この(彼らの前にコンテンツがパッケージ名である)のようなものですbuild.gradle:記号はAPKタスクの署名(Gradleのタスクと同じ名前)です

sign.dependsOn test 

。リリースを構築するとき、解放(例えばassembleRelease)を構築する作業を、作る、利用可能なすべてのテストを実行するには

5

テストタスクに依存:

android { 
    // ... 
} 
afterEvaluate { 
    assembleRelease.dependsOn testReleaseUnitTest, connectedAndroidTest 
} 

afterEvaluate閉鎖を評価した後に実行される(ときアンドロイドタスクが作成されました)。この時点でアンドロイドタスクは変数として参照できます。

testReleaseUnitTestの代わりに、testを使用して、すべてのバリアントの単体テストを実行できます。

releaseバージョンのアプリの計測テストはデフォルトではありません(ビルドassembleRelease)。したがって、上記の例ではconnectedAndroidTestdebugバージョンの計測テストを実行します。

+0

"test"という名前は常に "test"ですか、それとも私の名前ですか? ** assembleRelease.dependsOn ** **テスト**は実行されましたが、**署名されたapkを生成します**は停止しませんでしたか? – user2545386

+1

ええと、私は** assembleFlavorRelease dependsOn test **のように書くと見つかりました。それから、** assembleFlavorRelease **はテストによっては良いアイデアではないと思いました。 – user2545386

+0

非常にいいです。ありがとうございました。 – dit

関連する問題