private void recordTestTime(Test test) { if (!mTimeAlreadyWritten) { mTimeAlreadyWritten = true; TestKeeper testKeeper = getTestKeeper(test); testKeeper.setEndTime(System.currentTimeMillis()); addToSuite(test, testKeeper); } }
private void addProblem(Test test, String tag, Throwable error) { recordTestTime(test); TestKeeper testKeeper = getTestKeeper(test); testKeeper.setError(error); testKeeper.setTag(tag); if (TAG_ERROR.contentEquals(tag)) { testKeeper.setStatus("SKIP"); } else { testKeeper.setStatus("FAIL"); } addToSuite(test, testKeeper); updateSuiteDetails(test, tag); }
@Override public void startTest(Test test) { if (test instanceof TestCase) { total++; TestCase testCase = (TestCase) test; TestKeeper testKeeper = new TestKeeper(); String testName = getTestName(test); testKeeper.setTestname(testName); mTimeAlreadyWritten = false; mTestStartTime = System.currentTimeMillis(); testKeeper.setStartTime(mTestStartTime); currentSuite.setStartTime(System.currentTimeMillis()); testKeeper.setTest(testCase); checkSuiteDetails(test); addToSuite(test, testKeeper); } }
private TestKeeper getTestKeeper(Test test) { TestCase testcase = (TestCase) test; String suiteName = testcase.getClass().getName(); HashMap<String, TestKeeper> suiteTests; if (suiteMap.containsKey(suiteName)) { suiteTests = suiteMap.get(suiteName); if (suiteTests.containsKey(getTestName(test))) { return suiteTests.get(getTestName(test)); } } TestKeeper testKeeper = new TestKeeper(); String testName = getTestName(test); testKeeper.setTestname(testName); mTestStartTime = System.currentTimeMillis(); testKeeper.setStartTime(mTestStartTime); testKeeper.setTest(testcase); return testKeeper; }
private void addToSuite(Test test, TestKeeper testKeeper) { TestCase testcase = (TestCase) test; String suiteName = testcase.getClass().getName(); HashMap<String, TestKeeper> suiteTests; if (suiteMap.containsKey(suiteName)) { suiteTests = suiteMap.get(suiteName); } else { suiteTests = new HashMap<String, TestKeeper>(); } if (suiteDetails.containsKey(suiteName)) { SuiteKeeper sKeeper = suiteDetails.get(suiteName); currentSuite.setEndTime(sKeeper.getEndTime()); sKeeper.setEndTime(testKeeper.getEndTime()); suiteDetails.put(suiteName, sKeeper); } suiteTests.put(getTestName(test), testKeeper); suiteMap.put(suiteName, suiteTests); }
public void close() { Iterator<String> suiteIterator = suiteMap.keySet().iterator(); String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) && !Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { File f = mContext.getExternalFilesDir("testng"); if (f.exists()) { deleteDir(f); f.mkdirs(); } } try { openIfRequired(); addAttribute(ATTRIBUTE_SKIPPED, String.valueOf(errorCount)); addAttribute(ATTRIBUTE_FAILED, String.valueOf(failureCount)); addAttribute(ATTRIBUTE_TOTAL, String.valueOf(total)); addAttribute(ATTRIBUTE_PASSED, String.valueOf(total - errorCount - failureCount)); mSerializer.startTag("", "reporter-output"); mSerializer.endTag("", "reporter-output"); mSerializer.startTag("", TAG_SUITE); addAttribute(ATTRIBUTE_NAME, "Bot-bot suite"); String suiteTime = String.format( Locale.ENGLISH, "%.3f", (currentSuite.getEndTime() - currentSuite.getStartTime()) / 1000.); addAttribute(ATTRIBUTE_TIME, suiteTime); addAttribute(ATTRIBUTE_START_TIME, getTestngFormattedDate(currentSuite.getStartTime())); addAttribute(ATTRIBUTE_FINISHED_AT, getTestngFormattedDate(currentSuite.getEndTime())); mSerializer.startTag("", TAG_GROUPS); mSerializer.endTag("", TAG_GROUPS); mSerializer.startTag("", TAG_TEST); addAttribute(ATTRIBUTE_NAME, "Bot-bot suite"); addAttribute(ATTRIBUTE_TIME, suiteTime); addAttribute(ATTRIBUTE_START_TIME, getTestngFormattedDate(currentSuite.getStartTime())); addAttribute(ATTRIBUTE_FINISHED_AT, getTestngFormattedDate(currentSuite.getEndTime())); while (suiteIterator.hasNext()) { String suiteName = suiteIterator.next(); HashMap<String, TestKeeper> suiteTests = suiteMap.get(suiteName); mSerializer.startTag("", TAG_CLASS); addAttribute(ATTRIBUTE_NAME, suiteName); Iterator<String> testIterator = suiteTests.keySet().iterator(); while (testIterator.hasNext()) { String testName = testIterator.next(); TestKeeper testKeeper = suiteTests.get(testName); mSerializer.startTag("", TAG_CASE); addAttribute(ATTRIBUTE_STATUS, testKeeper.getStatus()); addAttribute(ATTRIBUTE_SIGNATURE, testName); addAttribute(ATTRIBUTE_NAME, testName); String timeTaken = String.format( Locale.ENGLISH, "%.3f", (testKeeper.getEndTime() - testKeeper.getStartTime()) / 1000.); addAttribute(ATTRIBUTE_TIME, timeTaken); addAttribute(ATTRIBUTE_START_TIME, getTestngFormattedDate(testKeeper.getStartTime())); addAttribute(ATTRIBUTE_FINISHED_AT, getTestngFormattedDate(testKeeper.getEndTime())); if (testKeeper.isFailed()) { Throwable error = testKeeper.getError(); mSerializer.startTag("", TAG_EXCEPTION); addAttribute(ATTRIBUTE_CLASS, error.getClass().getName()); mSerializer.startTag("", TAG_MESSAGE); mSerializer.text(safeMessage(error)); mSerializer.endTag("", TAG_MESSAGE); mSerializer.startTag("", "full-stacktrace"); StringWriter w = new StringWriter(); error.printStackTrace(mFilterTraces ? new FilteringWriterTest(w) : new PrintWriter(w)); mSerializer.text(w.toString()); mSerializer.endTag("", "full-stacktrace"); mSerializer.endTag("", TAG_EXCEPTION); } mSerializer.endTag("", TAG_CASE); } mSerializer.endTag("", TAG_CLASS); } mSerializer.endTag("", TAG_TEST); mSerializer.endTag("", TAG_SUITE); mSerializer.endTag("", TAG_SUITES); } catch (IOException e) { Log.e(LOG_TAG, safeMessage(e)); } closeSuite(); }