static DeviceTest from(TestIdentifier testIdentifier) { return new DeviceTest(testIdentifier.getClassName(), testIdentifier.getTestName()); }
@Override public void testStarted( TestIdentifier testIdentifier ) { testRunCount++; getLog().info( deviceLogLinePrefix + String.format( "%1$s%1$sStart [%2$d/%3$d]: %4$s", INDENT, testRunCount, testCount, testIdentifier.toString() ) ); if ( createReport ) { // reset start time for each test run currentTestCaseStartTime = System.currentTimeMillis(); currentTestCase = new Testsuite.Testcase(); currentTestCase.setClassname( testIdentifier.getClassName() ); currentTestCase.setName( testIdentifier.getTestName() ); } }
@Override public void testAssumptionFailure( TestIdentifier testIdentifier, String trace ) { if ( takeScreenshotOnFailure ) { String suffix = "_failure"; String filepath = testIdentifier.getTestName() + suffix + SCREENSHOT_SUFFIX; executeOnAdbShell( "screencap -p " + screenshotsPathOnDevice + "/" + filepath ); getLog().info( deviceLogLinePrefix + INDENT + INDENT + filepath + " saved." ); } ++testFailureCount; getLog().info( deviceLogLinePrefix + INDENT + INDENT + testIdentifier.toString() ); getLog().info( deviceLogLinePrefix + INDENT + INDENT + trace ); if ( createReport ) { final Testsuite.Testcase.Failure failure = new Testsuite.Testcase.Failure(); failure.setValue( trace ); failure.setMessage( parseForMessage( trace ) ); failure.setType( parseForException( trace ) ); currentTestCase.getFailure().add( failure ); } }
@Override public void testFailed( TestIdentifier testIdentifier, String trace ) { if ( takeScreenshotOnFailure ) { String suffix = "_error"; String filepath = testIdentifier.getTestName() + suffix + SCREENSHOT_SUFFIX; executeOnAdbShell( "screencap -p " + screenshotsPathOnDevice + "/" + filepath ); getLog().info( deviceLogLinePrefix + INDENT + INDENT + filepath + " saved." ); } ++testErrorCount; getLog().info( deviceLogLinePrefix + INDENT + INDENT + testIdentifier.toString() ); getLog().info( deviceLogLinePrefix + INDENT + INDENT + trace ); if ( createReport ) { final Testsuite.Testcase.Error error = new Testsuite.Testcase.Error(); error.setValue( trace ); error.setMessage( parseForMessage( trace ) ); error.setType( parseForException( trace ) ); currentTestCase.setError( objectFactory.createTestsuiteTestcaseError( error ) ); } }
runner.removeInstrumentationArg("package"); runner.removeInstrumentationArg("class"); runner.setMethodName(test.getClassName(), test.getTestName()); runner.run(listeners); } catch (Exception e) {
protected String getTestName(TestIdentifier testId) { return testId.getTestName(); }
/** * Generates user friendly string. */ @Override public String toString() { return String.format("%s#%s", getClassName(), getTestName()); } }
public TestFailureException(TestIdentifier failedTestIdentifier) { super(format("Failed test: %s %s", failedTestIdentifier.getClassName(), failedTestIdentifier.getTestName())); } }
@Override public String toString() { return String.format("%s#%s", getClassName(), getTestName()); } }
/** * Tests equality by comparing class and method name. */ @Override public boolean equals(Object other) { if (!(other instanceof TestIdentifier)) { return false; } TestIdentifier otherTest = (TestIdentifier)other; return getClassName().equals(otherTest.getClassName()) && getTestName().equals(otherTest.getTestName()); }
@Override public void testEnded(TestIdentifier test, Map<String, String> testMetrics) { long testDuration = millisSinceNanoTime(startTime); if (testDuration > TEST_LENGTH_THRESHOLD_MILLIS) { logger.warn("Slow test ({}ms): {} {}" , testDuration, test.getClassName(), test.getTestName()); } }
@Override public void testEnded(TestIdentifier test, Map<String, String> testMetrics) { if (!mFailedTests.remove(test)) { // if wasn't present in the list, then the test succeeded. if (mLogger != null) { mLogger.info("\n%1$s > %2$s[%3$s] \033[32mSUCCESS \033[0m", test.getClassName(), test.getTestName(), mDeviceName); } } super.testEnded(test, testMetrics); }
@Override public void testEnded(TestIdentifier test, Map<String, String> testMetrics) { if (!mFailedTests.remove(test)) { // if wasn't present in the list, then the test succeeded. if (mLogger != null) { mLogger.verbose("\n%1$s > %2$s[%3$s] \033[32mSUCCESS \033[0m", test.getClassName(), test.getTestName(), mDeviceName); } } super.testEnded(test, testMetrics); }
@Nonnull public static Builder testCaseEvent(@Nonnull TestIdentifier testIdentifier) { return testCaseEvent() .withTestClass(testIdentifier.getClassName()) .withTestMethod(testIdentifier.getTestName()); }
@Override public void testIgnored(TestIdentifier test) { if (mLogger != null) { mLogger.warning("\n%1$s > %2$s[%3$s] \033[33mSKIPPED \033[0m", test.getClassName(), test.getTestName(), mDeviceName); } super.testIgnored(test); }
@Override public void testIgnored(TestIdentifier test) { if (mLogger != null) { mLogger.warning("\n%1$s > %2$s[%3$s] \033[33mSKIPPED \033[0m", test.getClassName(), test.getTestName(), mDeviceName); } super.testIgnored(test); }
@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 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 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 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); }