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
});
});
规格2.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);
});
}
};
经过一些调查,我能够重新创建您的问题,它似乎与茉莉如何处理之前所有的钩子有关。这里和这里有一个完整的讨论,但是基本上(而且令人惊讶的是),您的测试文件中没有在description中声明的任何内容都将在任何测试执行之前被执行,包括beforeAll钩子。这让我很惊讶,因为我几乎可以肯定我以前用过Outser描述的,没有问题,但现在无法验证。
但是,如果您在description中声明了beforeAll钩子,那么它将被挂起并在测试之前执行,与您当前期望它现在的行为完全相同。
您是否可以尝试在以下描述中移动您的beforeAll块:
describe('Create Accounts', function () {
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);
});
it("Create Savings", function () {
something
});
it("Create current account", function () {
something
});
});
describe('Create Users', function () {
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);
});
it("Create user", function () {
something
});
it("Create user", function () {
something
});
})
我有以下testng.xml文件。我希望testng按顺序运行这些测试。我不想将这些测试中的每一个分开到一个新文件中。 我在套件级别上尝试了parallel=“tests”、“classes”、“methods”和thread count=1的组合,但都没有成功。
我使用maven failsafe插件触发testng套件,其配置与 但是套件或其中的测试没有按照正确的顺序执行。有没有办法规定套房应按以下顺序执行 某个套房。xml 另一套。xml 还有一套。xml 我不关心套件中测试的执行顺序,但只希望在前一个套件完成后执行一个套件。是否有一些配置可用于实现相同的功能?
我希望我所有的课程都按顺序进行。下面是我的testng xml文件: 我试过在套房里用姓名标签来做:
我想能够使用特定的浏览器配置运行特定的套件,这可能吗?。我尝试遵循代码,但不幸的是,当套件被指定时,capability字段被忽略,并且两个测试套件都在两个浏览器配置中执行。
问题内容: 我有一个要按日期在Angular.js中排序的数组: 列表不正确。我认为日期格式是原因吗? 日期格式为: 问题答案: 为了正常工作,您需要使用控制器中的对象包装字符串日期。 例如:
问题内容: 我最近使用量角器选择了一个项目。 我很难理解 套件和规格之间 的 区别 。当我运行测试的文件夹后,我也遇到了套件的问题,该文件夹运行后,我运行了另一个测试文件夹,但它未能通过所有测试。下面列出的是任何帮助或帮助,都非常有用。 例: 问题答案: 套件对于组织测试非常有用。 实际上,问题归结为套件和测试用例之间的差异。引用维基百科“测试套件”的定义: 旨在用于测试软件程序以表明其具有某些特