2

Jenkins を使用して build.gradle ファイルから単体テストを実行しようとしています。Android Studio のターミナルでコマンド./gradlew tasksを使用すると、設定したカスタム タスクを表示できます。ただし、jenkins を介して同じコマンドを実行しようとすると、タスクの出力でそれらを見ることができません。

私のbuild.gradleからのコードスニペット

task runDataUnitTests(dependsOn: [':data:test']) {
    description 'Run unit tests for data layer.'
}

task runBusinessUnitTests(dependsOn: [':business:test']) {
    description 'Run unit tests for business layer.'
}

task runPresenterUnitTests(dependsOn: [':presenter:test']) {
    description 'Run unit tests for presenter layer.'
}

task runAllUnitTests(dependsOn: [runDataUnitTests, runBusinessUnitTests, runPresenterUnitTests]) << {
    group = 'My tasks'
    description 'Run unit tests for all layers.'
}

task testingTaskmma{
    group = 'My tasks'
    println 'is this task seen'
}

Android Studio 出力

Other tasks
-----------
assembleArtifacts - Builds the project artifacts
assembleDefault
crashlyticsUploadDistributionLiveDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionLiveRelease - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingRelease - Uploads an APK to Crashlytics for distribution.
hello
jarLiveDebugClasses
jarLiveReleaseClasses
jarStagingDebugClasses
jarStagingReleaseClasses
lintVitalLiveRelease - Runs lint on just the fatal issues in the LiveRelease build.
lintVitalStagingRelease - Runs lint on just the fatal issues in the StagingRelease build.
runAllUnitTests **<<< THIS DUDE HERE**
sonarqube - Analyzes project ':msmandroidapp' and its subprojects with SonarQube.
sonarRunner - Analyzes project ':msmandroidapp' and its subprojects with Sonar Runner.
testingTaskmsma

ジェンキンスの出力

Other tasks
-----------
assembleArtifacts - Builds the project artifacts
assembleDefault
connectedInstrumentTest - Installs and runs instrumentation tests for all flavors on connected devices.
connectedLiveTest - Installs and runs the tests for LiveDebug flavor on connected devices.
connectedStagingTest - Installs and runs the tests for StagingDebug flavor on connected devices.
crashlyticsUploadDistributionLiveDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionLiveDebugAndroidTest - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionLiveRelease - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingDebugAndroidTest - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingRelease - Uploads an APK to Crashlytics for distribution.
jarLiveDebugClasses
jarLiveReleaseClasses
jarStagingDebugClasses
jarStagingReleaseClasses
publishLive - Uploads a live-flavor specific APK to MobileAppStore
publishStaging - Uploads a staging-flavor specific APK to MobileAppStore
sonarRunner - Analyzes project ':msmandroidapp' and its subprojects with Sonar Runner.
uploadArtifacts - Builds the project artifacts and uploads them the to local maven repository.

ご覧のとおり、私が作成した他のカスタム タスクがあり、それらも jenkins の出力に含まれていません (例: testingTaskmsma、hello など)。私は、gradle ラッパーを使用して Jenkins のセットアップを試し、グレード オプションを呼び出しました (グレード プラグインを使用してjenkins) どちらも機能しません。

4

1 に答える 1

3

問題は、Jenkins サーバーからの間違ったパスでした。ジョブの名前を変更した後、まったく新しいワークスペースが作成されたことに気付かなかったため、以前のワークスペースを指していました。また、Jenkins のグレード プラグインの代わりにシェル コマンドを使用する方が良いこともわかりました。これにより、問題を追跡できたからです。

于 2015-09-15T10:41:12.510 に答える