2

Я пытался запустить модульные тесты из моего файла build.gradle с Jenkins. Если я использую команду ./gradlew tasks в терминале в студии Android, я могу видеть настраиваемые задачи, которые я настроил. Однако, если я пытаюсь запустить ту же команду через jenkins, я не могу видеть их в выводах задач.Jenkins не распознает пользовательские задачи Gradle

Фрагмент кода из моего 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 Студия Ouput

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. 

Как вы можете видеть, что есть другие пользовательские задачи, которые я создал которые также отсутствуют на выходе дженкинсов (например, testTaskmsma, hello и т. д.) Я пробовал настроить Jenkins с помощью оболочки градиента и вызывать параметры класса (используя плагин оценки для jenkins), и ни один из них не работает.

+0

Пожалуйста, задайте задачи Gradle, которые вы выполняете как в локальной среде, так и в Jenkins. – Egor

+0

Я понял это и отправил ответ, спасибо, что ответил:) @Egor – JesterXiii

ответ

3

Проблема была неправильным путем с сервера Jenkins. После того как я переименовал задание, я не понял, что создано новое рабочее пространство, поэтому я указывал на предыдущее рабочее пространство. Кроме того, я нашел, что лучше использовать команды оболочки вместо плагина класса для Jenkins, поскольку именно так я смог отследить свою проблему.

Смежные вопросы