Я работаю с транспортиром 5.4.0 и огурцом.
Файл protractor.conf.js:
global.expect = require('chai').expect;
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub', // This is targetting your local running instance of the selenium webdriver
specs: [
'../Features/UI_Tests.feature'
],
capabilities: {
browserName: 'chrome' // You can use any browser you want. On a CI environment you're going to want to use PhantomJS
},
framework: 'custom', //We need this line to use the cucumber framework
frameworkPath: require.resolve('protractor-cucumber-framework'), // Here it is
cucumberOpts: {
//format: 'pretty',
require: '../Features/step_definitions/my_steps.js', // This is where we'll be writing our actual tests
// tags: ['@basic'],
strict: true,
plugin:"json"
},
resultJsonOutputFile:'./testResults.json', //output file path to store the final results in .json format
params: {
env: {
hostname: 'http://0.0.0.0:8000' // Whatever the address of your app is
}
}
};
Я определил этот сценарий на нескольких примерах:
Scenario Outline: dropdown boxes appear and work as expected.
When go to "URL"
Then application is running
When click <box>
Then <option> is present in <box>
Examples:
|box| option|
|templateSelection| Apparent Energy |
|templateDeliveryPathSelection| Email |
|templateLocaleSelection| English |
Я использую этот фрагмент кода, чтобы убедиться, что текст выпадающего списка совпадает с текстом столбца параметров:
checkDropdown: function (value,dropdown) {
var text = element(by.id(dropdown)).getText();
expect(text).to.eventually.equal(value);
},
Кажется, он работает должным образом, потому что вывод сообщает, что все сценарии прошли. Однако если мы изменим какое-либо из значений в столбце «option», чтобы оно не сработало, выходные данные будут одинаковыми, все сценарии пройдут. Почему?
Заранее спасибо.