0

在 VSTS 中使用量角器和 jasmine 在启用 CI 的框架中自动化 e2e 测试。使用 jasmine 自定义报告器在 VSTS 构建定义中的酱实验室选项卡下加载 e2e 测试结果。但是,它没有加载所有测试。它仅显示构建中运行的最后一次 e2e 测试。正在为所有 e2e 测试打印控制台日志。请看下面的代码。

let sauceLabsReporter: jasmine.CustomReporter = {
specDone: (result: jasmine.CustomReporterResult): void => {
    Util.log('*** sauceLabsReporter: result.fullName:', result.fullName);
    Util.log('*** sauceLabsReporter: result.status:', result.status);
    Util.log('*** sauceLabsReporter: result.testCaseId:', result.testCaseId);

    if (result.testCaseId) {
        result.fullName = `(Testcase ID: ${result.testCaseId}): ${result.fullName}`;
        Util.log('*** sauceLabsReporter: UPDATED result.fullName:', result.fullName);
    }

    Util.updateSauceLabsJobTitle(result.fullName);

    if (result.status) {
        Util.updateSauceLabsTestState(result.status);
    }
}
};

export function updateSauceLabsJobTitle(title: string): promise.Promise<void> {
let fullTitle: string = `${title} | (${getHostname()})`;

return browser.executeScript(`sauce:job-name=${fullTitle}`)
    .then(() => browser.getSession())
    .then((session: Session) => {
        if (isThisVSTSBuildAgent()) {
            //The VSTS Sauce Labs add-on gets information by parsing the console log.
            //tslint:disable-next-line:no-console
            console.log(`SauceOnDemandSessionID=${session.getId()} job-name=${fullTitle}`);
        }
    });
 }

export function updateSauceLabsTestState(state: string): promise.Promise<{}> {

  return browser.executeScript(`sauce:job-result=${state}`);
 }
4

1 回答 1

0

我和 Padma 从事同一个项目。它与restartBrowserBetweenTestsfalse所有测试合并为一个工作的设置有关。将其设置为 后true,每个测试都成为了自己的工作。

于 2018-04-12T01:38:16.583 回答