Exemplo n.º 1
0
void GUITestService::runAllGUITests() {

    GUITests initTests = preChecks();
    GUITests postChecksTests = postChecks();
    GUITests postActiosTests = postActions();

    GUITests tests = AppContext::getGUITestBase()->takeTests();
    SAFE_POINT(false == tests.isEmpty(),"",);

    foreach(HI::GUITest* t, tests) {
        SAFE_POINT(NULL != t,"",);
        if (!t) {
            continue;
        }
        QString testName = t->getFullName();
        QString testNameForTeamCity = t->getSuite() +"_"+ t->getName();

        if (t->isIgnored()) {
            GUITestTeamcityLogger::testIgnored(testNameForTeamCity, t->getIgnoreMessage());
            continue;
        }

        qint64 startTime = GTimer::currentTimeMicros();
        GUITestTeamcityLogger::testStarted(testNameForTeamCity);

        HI::GUITestOpStatus os;
        log.trace("GTRUNNER - runAllGUITests - going to run initial checks before " + testName);
        foreach(HI::GUITest* t, initTests) {
            if (t) {
                t->run(os);
            }
        }

        clearSandbox();
        log.trace("GTRUNNER - runAllGUITests - going to run test " + testName);
        t->run(os);
        log.trace("GTRUNNER - runAllGUITests - finished running test " + testName);

        foreach(HI::GUITest* t, postChecksTests) {
            if (t) {
                t->run(os);
            }
        }

        HI::GUITestOpStatus os2;
        foreach(HI::GUITest* t, postActiosTests) {
            if (t) {
                t->run(os2);
            }
        }

        QString testResult = os.hasError() ? os.getError() : GUITestTeamcityLogger::successResult;

        qint64 finishTime = GTimer::currentTimeMicros();
        GUITestTeamcityLogger::teamCityLogResult(testNameForTeamCity, testResult, GTimer::millisBetween(startTime, finishTime));
    }