1

Можно ли запускать одиночные тесты с использованием плагина Robolectric-Gradle?Плагин Robolectric-Gradle работает один тест

Я пытался с этим:

./gradlew test -Dtest.single=testName 

Но это не работает.

+1

кажется, что это может быть сделано с 'includePatterns' с некоторыми хаками, но не напрямую. – Opal

ответ

4

Сделал ту же ошибку сам. Это формат для подключаемого модуля jcandksolutions (по крайней мере, это то, что я использовал). -Dtest.single=<test name> не поддерживается плагином RoboE-Gradle.

Использование --tests <test class name> механизм. Это может быть либо --tests <classpath of test>, подстановочным с --tests *.*Test

+0

Это правильный способ сделать это! –

+2

Всякий раз, когда я пытаюсь запустить это, я получаю «Неизвестный параметр командной строки» --tests'', есть ли что-то, что я здесь отсутствует? Я использую плагин RoboE-Gradle (v 0.14.1) и запускаю команду './gradlew clean test --test MyTest' – Gabriel

+1

Прежде всего,' -Dtest.single = '- это общий синтаксис для make Gradle определяет системное свойство JVM, называемое 'test.single', т. е.' -D' обрабатывается самим Gradle, а не каким-либо плагином. Аналогично, '--tests' - это параметр командной строки [предоставляемый плагином Java] (https://docs.gradle.org/current/userguide/java_plugin.html#test_filtering), это не вариант задачи (Gradle задачи не могут принимать аргументы командной строки). Тем не менее, вопрос заключается в том, поддерживает ли плагин Robolectric '-Dtest.single' или' --tests' snytax, и по моему опыту он поддерживает оба. – sschuberth

1

, описанный в оригинальном вопросе метод не работает, но вы должны работать с последними версиями robolectric Gradle плагина согласно docs here

Так в настоящее время в ваших зависимости разделе будете нуждаться в

classpath 'org.robolectric:robolectric-gradle-plugin:1.0.1' 

Если вы обновляете 0.xx, как и я, вы, вероятно, потребуется изменить зависимости от androidTestCompile к testCompile строить свои тесты.

Тогда, как и выше

./gradlew test -DtestDebug.single=<NameOfTestClass> 

будет работать только ваш единственный тест (Обратите внимание, что предполагает ваш тестовый класс заканчивается * Test, так что вы можете пропустить его из команды)

+0

И если вы столкнулись с трудностями при получении студии Android, чтобы забрать тестовые классы после смены 'androidTestCompile' на' testCompile', тогда эта строка исправит это для вас 'androidTestCompile configurations.testCompile.dependencies' –

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