Jasmine 自定义报告未加载 VSTS 中 Sauce labs 选项卡下的所有测试
Jasmine custom report is not loading all the tests under Sauce labs tab in VSTS
在 CI 启用的框架中使用 VSTS 中的 Protractor 和 jasmine 自动化了 e2e 测试。使用 jasmine 自定义报告程序在 VSTS 构建定义中的 sauce labs 选项卡下加载 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}`);
}
我和 Padma 从事同一个项目。它与 restartBrowserBetweenTests
设置为 false
有关,这将所有测试合并为一个作业。设置为true
后,每个测试都变成了自己的工作。
在 CI 启用的框架中使用 VSTS 中的 Protractor 和 jasmine 自动化了 e2e 测试。使用 jasmine 自定义报告程序在 VSTS 构建定义中的 sauce labs 选项卡下加载 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}`);
}
我和 Padma 从事同一个项目。它与 restartBrowserBetweenTests
设置为 false
有关,这将所有测试合并为一个作业。设置为true
后,每个测试都变成了自己的工作。