Может ли Gradle создавать контрольно-измерительные приборы без их запуска? - PullRequest
0 голосов
/ 24 мая 2018

TL: DR Я ищу способ компиляции нашего набора инструментальных средств тестирования, но без его фактического запуска.Можно ли добиться этого с помощью плагина Android для Gradle?

Я просмотрел официальную документацию и не вижу ничего, кроме команды Gradle, которая компилирует и затем запускает тестывместе.

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

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Найдена задача Gradle для достижения этой цели:

$ ./gradlew compileDebugAndroidTestJavaWithJavac

Вышеуказанная задача будет компилировать инструментальные тесты без их фактического запуска.

0 голосов
/ 28 мая 2018

Может быть достигнуто, gradle запускает все как задачу, я надеюсь, что вы выполняете:

./gradlew test

, и вы можете видеть вывод как

Incremental java compilation is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2501Library
:app:prepareComAndroidSupportAppcompatV72501Library
:app:prepareComAndroidSupportDesign2501Library
:app:prepareComAndroidSupportRecyclerviewV72501Library
:app:prepareComAndroidSupportSupportCompat2501Library
:app:prepareComAndroidSupportSupportCoreUi2501Library
:app:prepareComAndroidSupportSupportCoreUtils2501Library
:app:prepareComAndroidSupportSupportFragment2501Library
:app:prepareComAndroidSupportSupportMediaCompat2501Library
:app:prepareComAndroidSupportSupportV42501Library
:app:prepareComAndroidSupportSupportVectorDrawable2501Library
:app:prepareComAndroidSupportTransition2501Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugResValues
:app:generateDebugResources
:app:mergeDebugResources
:app:processDebugManifest
:app:processDebugResources
:app:generateDebugSources
:app:incrementalDebugJavaCompilationSafeguard
:app:compileDebugJavaWithJavac
:app:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
:app:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE
:app:preDebugUnitTestBuild UP-TO-DATE
:app:prepareDebugUnitTestDependencies
:app:compileDebugUnitTestJavaWithJavac
:app:processDebugJavaRes UP-TO-DATE
:app:processDebugUnitTestJavaRes UP-TO-DATE
:app:compileDebugUnitTestSources
:app:mockableAndroidJar
:app:assembleDebugUnitTest
:app:testDebugUnitTest
:app:checkReleaseManifest
:app:prepareReleaseDependencies
:app:compileReleaseAidl
:app:compileReleaseRenderscript
:app:generateReleaseBuildConfig
:app:generateReleaseResValues
:app:generateReleaseResources
:app:mergeReleaseResources
:app:processReleaseManifest
:app:processReleaseResources
:app:generateReleaseSources
:app:incrementalReleaseJavaCompilationSafeguard
:app:compileReleaseJavaWithJavac
:app:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
:app:incrementalReleaseUnitTestJavaCompilationSafeguard UP-TO-DATE
:app:preReleaseUnitTestBuild UP-TO-DATE
:app:prepareReleaseUnitTestDependencies
:app:compileReleaseUnitTestJavaWithJavac
:app:processReleaseJavaRes UP-TO-DATE
:app:processReleaseUnitTestJavaRes UP-TO-DATE
:app:compileReleaseUnitTestSources
:app:assembleReleaseUnitTest
:app:testReleaseUnitTest
:app:test

BUILD SUCCESSFUL

, который является иерархией вызова задач,означает, что задача «тест» зависит от всех или одной вышеупомянутой задачи, то есть «приложение: testReleaseUnitTest».так что вы можете позвонить на "buildReleaseUnitTest"

./gradlew assembleReleaseUnitTest 
...