static DeviceTest from(TestIdentifier testIdentifier) { return new DeviceTest(testIdentifier.getClassName(), testIdentifier.getTestName()); }
private void handleTestStarted( String line ) { mCurrentTestIndentifier = new TestIdentifier( "MonkeyTest", line ); for ( ITestRunListener listener : mTestListeners ) { listener.testStarted( mCurrentTestIndentifier ); } }
@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 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(); }
protected String getTestName(TestIdentifier testId) { return testId.getTestName(); }
@Override public void testIgnored( TestIdentifier testIdentifier ) { ++testIgnoredCount; getLog().info( deviceLogLinePrefix + INDENT + INDENT + testIdentifier.toString() ); }
@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 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 ) ); } }
@Override public void testEnded( TestIdentifier testIdentifier, Map< String, String > testMetrics ) { getLog().info( deviceLogLinePrefix + String.format( "%1$s%1$sEnd [%2$d/%3$d]: %4$s", INDENT, testRunCount, testCount, testIdentifier.toString() ) ); logMetrics( testMetrics ); if ( createReport ) { double seconds = ( System.currentTimeMillis() - currentTestCaseStartTime ) / 1000.0; currentTestCase.setTime( timeFormatter.format( seconds ) ); report.getTestcase().add( currentTestCase ); } }
runner.removeInstrumentationArg("package"); runner.removeInstrumentationArg("class"); runner.setMethodName(test.getClassName(), test.getTestName()); runner.run(listeners); } catch (Exception e) {
mCurrentTestIndentifier = new TestIdentifier( "MonkeyTest ", testName );
void print(KXmlSerializer serializer, TestIdentifier testId, TestResult testResult) throws IOException { serializer.startTag(ns, TESTCASE); serializer.attribute(ns, ATTR_NAME, getTestName(testId)); serializer.attribute(ns, ATTR_CLASSNAME, testId.getClassName()); long elapsedTimeMs = testResult.getEndTime() - testResult.getStartTime(); serializer.attribute(ns, ATTR_TIME, Double.toString((double)elapsedTimeMs / 1000.f)); switch (testResult.getStatus()) { case FAILURE: printFailedTest(serializer, FAILURE, testResult.getStackTrace()); break; case ASSUMPTION_FAILURE: printFailedTest(serializer, SKIPPED_TAG, testResult.getStackTrace()); break; case IGNORED: serializer.startTag(ns, SKIPPED_TAG); serializer.endTag(ns, SKIPPED_TAG); break; } serializer.endTag(ns, TESTCASE); }
public static String getCoverageFileName(TestIdentifier testIdentifier) { return COVERAGE_DIRECTORY + "/" +testIdentifier.toString() + ".ec"; }
/** * Generates user friendly string. */ @Override public String toString() { return String.format("%s#%s", getClassName(), getTestName()); } }
private void addLogcats(HtmlTestResult testResult, HtmlPoolSummary pool) { TestIdentifier testIdentifier = new TestIdentifier(testResult.plainClassName, testResult.plainMethodName); List<LogCatMessage> logCatMessages = retriever.retrieveLogCat(pool.plainPoolName, testResult.deviceSafeSerial, testIdentifier); testResult.logcatMessages = transform(logCatMessages, toHtmlLogCatMessages()); } }
private String testCase(@Nonnull TestIdentifier test) { return test.toString().replaceAll(testPackage, ""); }
@Override public String toString() { return String.format("%s#%s", getClassName(), getTestName()); } }
@Override public File createFile(FileType fileType, Pool pool, Device device, TestCaseEvent testCaseEvent) { return createFile(fileType, pool, device, new TestIdentifier(testCaseEvent.getTestClass(), testCaseEvent.getTestMethod())); }
private String createFilenameForTest(TestIdentifier testIdentifier, FileType fileType, int sequenceNumber) { return String.format("%s-%02d.%s", testIdentifier.toString(), sequenceNumber, fileType.getSuffix()); } }