@Override public void testRunStarted(String runName, int testCount) { super.testRunStarted(runName, testCount); if (mProgressListener != null) { mProgressListener.setTestCountForOneShard(testCount); } }
@Override public void testEnded(TestIdentifier test, Map<String, String> testMetrics) { super.testEnded(test, testMetrics); if (mProgressListener != null) { mProgressListener.onTestFinished(); } } }
@Override protected String getTestSuiteName() { // in order for the gradle report to look good we put the test suite name as one of the // test class name. Map<TestIdentifier, TestResult> testResults = getRunResult().getTestResults(); if (testResults.isEmpty()) { return null; } Map.Entry<TestIdentifier, TestResult> testEntry = testResults.entrySet().iterator().next(); return testEntry.getKey().getClassName(); }
CustomTestRunListener runListener = new CustomTestRunListener( deviceName, projectName, flavorName, logger); runListener.setReportDir(resultsDir); TestRunResult testRunResult = runListener.getRunResult(); CustomTestRunListener fakeRunListener = new CustomTestRunListener( deviceName, projectName, flavorName, logger); fakeRunListener.setReportDir(resultsDir); fakeRunListener.testStarted(fakeTest); fakeRunListener.testFailed( fakeTest, "No tests found. This usually means that your test classes are" + " not in the form that your test runner expects (e.g. don't inherit from" + " TestCase or lack @Test annotations)."); fakeRunListener.testEnded(fakeTest, emptyMetrics); fakeRunListener.testRunEnded(System.currentTimeMillis() - time, emptyMetrics); return false; e.printStackTrace(pw); TestIdentifier fakeTest = new TestIdentifier(device.getClass().getName(), "runTests"); runListener.testStarted(fakeTest); runListener.testFailed(fakeTest , baos.toString()); runListener.testEnded(fakeTest, emptyMetrics); runListener.testRunEnded(System.currentTimeMillis() - time, emptyMetrics);
while ((shard = shardProvider.getNextShard()) != null) { logger.verbose("Running shard %d on %s", shard, deviceName); RemoteAndroidTestRunner runner = new RemoteAndroidTestRunner( String coverageFileName = createCoverageFileName(shard); coverageFiles.add(coverageFileName); runner.addInstrumentationArg("coverageFile", String.valueOf(shardProvider.getTotalShards())); runListener = new ShardedTestListener( shard, deviceName, projectName, flavorName, logger); runListener.setReportDir(resultsDir); ((ShardedTestListener) runListener).setProgressListener(progressListener); runner.run(runListener); TestRunResult testRunResult = runListener.getRunResult(); if (testRunResult.getNumTests() == 0) { TestIdentifier fakeTest = new TestIdentifier(device.getClass().getName(), "runTests"); if (runListener != null) { runListener.testStarted(fakeTest); runListener.testFailed(fakeTest, baos.toString()); runListener.testEnded(fakeTest, emptyMetrics); runListener.testRunEnded(System.currentTimeMillis() - time, emptyMetrics); uninstall(testApk, testData.getApplicationId(), deviceName);
CustomTestRunListener fakeRunListener = new CustomTestRunListener( "TestRunner", projectName, variantName, logger); fakeRunListener.setReportDir(resultsDir); TestIdentifier fakeTest = new TestIdentifier(variantName, totalDevices == 0 ? ": No devices connected." : ": No compatible devices connected."); fakeRunListener.testStarted(fakeTest); fakeRunListener.testFailed( fakeTest, String.format("Found %d connected device(s), %d of which were compatible.", totalDevices, availableDevices.size())); fakeRunListener.testEnded(fakeTest, emptyMetrics); fakeRunListener.testRunEnded(0, emptyMetrics); CustomTestRunListener fakeRunListener = new CustomTestRunListener( "TestRunner", projectName, variantName, logger); fakeRunListener.setReportDir(resultsDir); fakeRunListener.testStarted(fakeTest); fakeRunListener.testFailed(fakeTest , String.format("Found %d unauthorized device(s).", unauthorizedDevices)); fakeRunListener.testEnded(fakeTest, emptyMetrics); fakeRunListener.testRunEnded(0, emptyMetrics); = new ShardedTestCallable.ProgressListener(numShards, logger); final ShardedTestCallable.ShardProvider shardProvider = new ShardedTestCallable.ShardProvider() {
executor.execute(new SimpleTestCallable(device, projectName, variantName, testApk, testedApks, mAdbExec, testData, resultsDir, coverageDir, timeoutInMs, installOptions, logger)); CustomTestRunListener fakeRunListener = new CustomTestRunListener( "TestRunner", projectName, variantName, logger); fakeRunListener.setReportDir(resultsDir); TestIdentifier fakeTest = new TestIdentifier(variantName, totalDevices == 0 ? ": No devices connected." : ": No compatible devices connected."); fakeRunListener.testStarted(fakeTest); fakeRunListener.testFailed( fakeTest, String.format("Found %d connected device(s), %d of which were compatible.", totalDevices, compatibleDevices)); fakeRunListener.testEnded(fakeTest, emptyMetrics); fakeRunListener.testRunEnded(0, emptyMetrics); CustomTestRunListener fakeRunListener = new CustomTestRunListener( "TestRunner", projectName, variantName, logger); fakeRunListener.setReportDir(resultsDir); fakeRunListener.testStarted(fakeTest); fakeRunListener.testFailed(fakeTest , String.format("Found %d unauthorized device(s).", unauthorizedDevices)); fakeRunListener.testEnded(fakeTest, emptyMetrics); fakeRunListener.testRunEnded(0, emptyMetrics);
@Override public void testAssumptionFailure(TestIdentifier test, String trace) { if (mLogger != null) { mLogger.warning("\n%1$s > %2$s[%3$s] \033[33mSKIPPED \033[0m\n%4$s", test.getClassName(), test.getTestName(), mDeviceName, getModifiedTrace(trace)); } super.testAssumptionFailure(test, trace); }
CustomTestRunListener runListener = new CustomTestRunListener( deviceName, projectName, flavorName, logger); runListener.setReportDir(resultsDir); TestRunResult testRunResult = runListener.getRunResult(); CustomTestRunListener fakeRunListener = new CustomTestRunListener( deviceName, projectName, flavorName, logger); fakeRunListener.setReportDir(resultsDir); fakeRunListener.testStarted(fakeTest); fakeRunListener.testFailed( fakeTest, "No tests found. This usually means that your test classes are" + " not in the form that your test runner expects (e.g. don't inherit from" + " TestCase or lack @Test annotations)."); fakeRunListener.testEnded(fakeTest, emptyMetrics); fakeRunListener.testRunEnded(System.currentTimeMillis() - time, emptyMetrics); return false; e.printStackTrace(pw); TestIdentifier fakeTest = new TestIdentifier(device.getClass().getName(), "runTests"); runListener.testStarted(fakeTest); runListener.testFailed(fakeTest , baos.toString()); runListener.testEnded(fakeTest, emptyMetrics); runListener.testRunEnded(System.currentTimeMillis() - time, emptyMetrics);
@Override public void testFailed(TestIdentifier test, String trace) { if (mLogger != null) { mLogger.warning("\n%1$s > %2$s[%3$s] \033[31mFAILED \033[0m", test.getClassName(), test.getTestName(), mDeviceName); mLogger.warning(getModifiedTrace(trace)); } mFailedTests.add(test); super.testFailed(test, trace); }
@Override protected String getTestSuiteName() { // in order for the gradle report to look good we put the test suite name as one of the // test class name. Map<TestIdentifier, TestResult> testResults = getRunResult().getTestResults(); if (testResults.isEmpty()) { return null; } Map.Entry<TestIdentifier, TestResult> testEntry = testResults.entrySet().iterator().next(); return testEntry.getKey().getClassName(); }
@Override public void testAssumptionFailure(TestIdentifier test, String trace) { if (mLogger != null) { mLogger.warning("\n%1$s > %2$s[%3$s] \033[33mSKIPPED \033[0m\n%4$s", test.getClassName(), test.getTestName(), mDeviceName, getModifiedTrace(trace)); } super.testAssumptionFailure(test, trace); }
@Override public void testFailed(TestIdentifier test, String trace) { if (mLogger != null) { mLogger.warning("\n%1$s > %2$s[%3$s] \033[31mFAILED \033[0m", test.getClassName(), test.getTestName(), mDeviceName); mLogger.warning(getModifiedTrace(trace)); } mFailedTests.add(test); super.testFailed(test, trace); }