2014-11-19 11 views
7

Niedawno zaczęliśmy dodawać testy do naszego projektu aplikacji na Androida. Zaczęliśmy używać Robolectric, ale ostatnio musieliśmy to zrobić i zamiast tego używamy zwykłych testów z powodu problemu, który napotkaliśmy w Couchbase. Przed dodaniem Couchbase nasze testy działały doskonale podczas pracy z Roblectric.Gradle connectedAndroidTest kończy się niepowodzeniem z "Nie znaleziono testów". ale wyniki testów wyjściowych

Z nowej gałęzi, która nie ma w sobie Couchbase, wyciągam Robolectric i przechodzę do korzystania ze standardowych testów połączonych. Wyciągnąłem Robolectric i wszystkie testy znów działają. Raport z testu HTML generuje poprawnie wszystkie wyniki, których byśmy oczekiwali. Jeśli test się nie powiedzie, konsola dokładnie odzwierciedla, który test się nie powiódł i dlaczego.

Kwestia my jesteśmy po to, że nawet jeśli wszystkie testy pracują ponownie (i mijania) sprawdzanie nie powiedzie się z następującym komunikatem:

com.android.builder.testing.ConnectedDevice > hasTests[Nexus 4 - 4.4.4] FAILED 
No tests found. 
:libraries:Android-ZXing-Lib:connectedAndroidTest FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':libraries:Android-ZXing-Lib:connectedAndroidTest'. 
> There were failing tests. See the report at: file:///Users/MyAccount/Git%20Repos/MyProject/libraries/Android-ZXing-Lib/build/outputs/reports/androidTests/connected/index.html 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

biegł z --stacktrace widzę to jest zdecydowanie nadchodzi z tej biblioteki.

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':libraries:Android-ZXing-Lib:connectedAndroidTest'. 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) 
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) 
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) 
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) 
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) 
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:305) 
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) 
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) 
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) 
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) 
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88) 
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) 
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) 
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) 
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68) 
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) 
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55) 
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149) 
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) 
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) 
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) 
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51) 
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) 
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) 
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 
    at org.gradle.launcher.Main.doAction(Main.java:33) 
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) 
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23) 
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33) 
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130) 
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) 
Caused by: org.gradle.api.GradleException: There were failing tests. See the report at: file:///Users/MyAccount/Git%20Repos/MyProject/libraries/Android-ZXing-Lib/build/outputs/reports/androidTests/connected/index.html 
    at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.runTests(DeviceProviderInstrumentTestTask.groovy:95) 
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:218) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:211) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:200) 
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:579) 
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:562) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) 
    ... 47 more 

Czy istnieje sposób dla mnie nie mają conectedAndroidTest działać na bibliotekach, które nie prowadzą?

Odpowiedz

1

Można uruchomić gradlew :app:connectedAndroidTest (gdzie app jest nazwą katalogu modułu aplikacji), która będzie uruchamiać tylko testy aplikacji.

+0

To rzeczywiście działa w większości przypadków. Nie mamy modułu aplikacji, więc nie możemy tego tak celować. Mamy też kilka bibliotek, które chciałybyśmy również uruchomić testy. Stwierdziliśmy, że można wykluczyć biblioteki do wykonywania testów za pomocą następującego polecenia: – drspaceboo

0

W naszym przypadku przyjęta odpowiedź nie pomogła.

Nasze testy zaczynały się idealnie dobrze, jeśli uruchomiliśmy je z Android Studio, ale Gradle nie udało się ich znaleźć, jeśli uruchomimy dowolny typ connectedCheck przy użyciu zarówno Android Gradle Plugin, jak i polecenia w terminalu.

Znaleźliśmy potrzebne informacje int the official docs. Niezależnie od faktu, że zwykły test Instrumented działał bezproblemowo, musieliśmy dodać wyraźną zależność, aby przetestować biegacz:

androidTestCompile 'com.android.support.test:runner:1.0.1' 

// Or this one for Android Gradle Plugin 3.+ 
// androidTestImplementation 'com.android.support.test:runner:1.0.1' 
Powiązane problemy