Я использую транспортир + жасмин.
У меня странная проблема.У меня есть 2 набора тестов (или Spec.js).Я хочу запускать их один за другим (строго).Однако транспортир запускает Spec1, связанный с BeforeAll ().И быстро перейти к Spec2, связанной с BeforeAll ().
В Spec1 есть одна функция входа в систему, а иногда вход в систему занимает 40 секунд.Это причина?
И, после входа в систему из Spec1, транспортир переходит в Spec2 и начинает выполнять «BeforeAll».А позже возвращается к «описанию», связанному со Spec1.
Пожалуйста, имейте в виду эти большие файлы, так как они имеют решающее значение для отладки.
Если я запускаю эти две спецификации по отдельности, т.е.не в последовательности, все было хорошо.
Spec1.js
beforeAll(function () {
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = globalconstants.wait10Mints;
browser.waitForAngularEnabled(false);
browser.get(env.appUrl);
browser.getTitle().then(function (title) {
expect(title, "Browser title is not the expected. But " + browser.getTitle()).toBe("Valueone");
});
browser.waitForAngularEnabled(true);
loginPage.login();
commonPage.navigateToUsers();
usersPage.deleteUsers(name);
});
describe('Create Users', function () {
it("Create user", function () {
something
});
it("Create user", function () {
something
});
});
Spec2.js
beforeAll(function () {
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = globalconstants.wait10Mints;
browser.waitForAngularEnabled(false);
browser.get(env.appUrl);
browser.getTitle().then(function (title) {
expect(title, "Browser title is not the expected. But " + browser.getTitle()).toBe("Valueone");
});
browser.waitForAngularEnabled(true);
loginPage.login();
commonPage.navigateToAccounts();
accountsPage.deleteAccounts(number);
});
describe('Create Accounts', function () {
it("Create Savings", function () {
something
});
it("Create current account", function () {
something
});
});
Conf.js
var env = require('./Utils/env.js');
var HTMLReport = require('protractor-html-reporter-2');
var JasmineReporters = require('jasmine-reporters');
exports.config =
{
baseUrl: 'http://localhost:9999',
directConnect: true,
framework: 'jasmine2',
suites: {
1sp: './mysuites/1Spec.js',
2sp: './mySuites/2Spec.js',
},
capabilities: {
'browserName': env.browserName,
'platform': env.osName,
//Closes any existing browsers
'shardTestFiles': false,
'maxInstances': 1
},
params: {
tempVar: false
},
onPrepare: async () => {
global.result = false;
var fs = require('fs-extra');
fs.emptyDir('./Reports/Screenshots/', function (err) {
console.log(err);
});
jasmine.getEnv().addReporter({
specDone: function (result) {
if (result.status == 'failed') {
browser.getCapabilities().then(function (caps) {
browser.takeScreenshot().then(function (png) {
var stream = fs.createWriteStream('./Reports/Screenshots/' + env.browserName + '-' + result.fullName + '.png');
stream.write(new Buffer(png, 'base64'));
stream.end();
});
});
}
}
});
var width = 1600;
var height = 1200;
browser.driver.manage().window().setSize(width, height);
//Html reporter
jasmine.getEnv().addReporter(new JasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: './Reports',
filePrefix: 'xmlresults'
}));
},
onComplete: async () => {
var capsPromise = browser.getCapabilities();
capsPromise.then(function (caps) {
testConfig = {
reportTitle: 'UI Test Execution Report',
outputPath: './Reports',
outputFilename: 'UI Test Results',
screenshotPath: './screenshots',
testBrowser: 'FireFox',
modifiedSuiteName: false,
screenshotsOnlyOnFailure: true,
testPlatform: env.osName
};
new HTMLReport().from('./Reports/xmlresults.xml', testConfig);
});
}
};