2015-02-09 3 views
0

Я запускаю некоторые угловые тесты e2e с транспортиром и получаю неудачное ожидание.Проталкиватель toContain не работает, когда тесты настроены с помощью shardTestFiles: true

expect: Expected [ 'Integration Test Acquirer Automatically generated EUR,GBP,USD activated' ] to contain 'Integration Test Acquirer Automatically generated EUR'.

код я использую в это ожидание:

expect(processingPathListElement.count()).toEqual(1); 

expect(processingPathListElement.getText()).toContain('Integration Test Acquirer Automatically generated EUR'); 

Таким образом, текст «Интеграция Test Приобретатель Автоматически генерируемый EUR» на самом деле содержится в «Интеграция Test Приобретатель Автоматически генерируемый EUR, GBP, USD» ,

Я должен упомянуть, что этот тест заканчивается неудачно, когда я использую обход тестов (запуск нескольких экземпляров браузера вместо одного и разделение тестов среди них). Тесты выполняются в 5 экземплярах firefox. Другое дело, что я использую сложение вместо того, чтобы смотреть на всю строку и использовать совпадение «toEqual», потому что, когда я запускаю тесты, расстояние между валютами (должно быть «EUR, GBP, USD» заканчивается тем, EUR, GBP, USD "). Меня не волнует вторая проблема, но я забочусь о первом. И снова эта проблема только проявляется, когда я запускать тесты с конфигой:

capabilities: { 
    'browserName': 'firefox', 
    shardTestFiles: true, 
    maxInstances: 5 
}, 

Если удалить shardTestFiles: true тесты проходят.

Здесь вся информация о неисправном тесте:

expect: Expected [ 'Integration Test Acquirer Automatically generated EUR,GBP,USD activated' ] to contain 'Integration Test Acquirer Automatically generated EUR'. Error: Failed expectation at null.<anonymous> (/Users/bamboo/bamboo-home/xml-data/build-dir/IOG-TESTFE61-JOB1/test/e2e/merchants/merchant/merchantMPOSSpec.js:177:69) at /usr/local/lib/node_modules/protractor/node_modules/jasminewd/index.js:94:14 at webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1640:20) at webdriver.promise.ControlFlow.runEventLoop_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1505:8) at wrapper [as _onTimeout] (timers.js:252:14) at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)expect: Expected [ 'Integration Test Acquirer Automatically generated EUR,GBP,USD activated' ] to contain 'GBP'. Error: Failed expectation at null.<anonymous> (/Users/bamboo/bamboo-home/xml-data/build-dir/IOG-TESTFE61-JOB1/test/e2e/merchants/merchant/merchantMPOSSpec.js:178:69) at /usr/local/lib/node_modules/protractor/node_modules/jasminewd/index.js:94:14 at webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1640:20) at webdriver.promise.ControlFlow.runEventLoop_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1505:8) at wrapper [as _onTimeout] (timers.js:252:14) at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)expect: Expected [ 'Integration Test Acquirer Automatically generated EUR,GBP,USD activated' ] to contain 'USD activated'. Error: Failed expectation at null.<anonymous> (/Users/bamboo/bamboo-home/xml-data/build-dir/IOG-TESTFE61-JOB1/test/e2e/merchants/merchant/merchantMPOSSpec.js:179:69) at /usr/local/lib/node_modules/protractor/node_modules/jasminewd/index.js:94:14 at webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1640:20) at webdriver.promise.ControlFlow.runEventLoop_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1505:8) at wrapper [as _onTimeout] (timers.js:252:14) at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

ответ

4

Ваш селектор (processingPathListElement) возвращает более одного элемент, поэтому ожидание терпит неудачу. Это не проблема «toContain».

Это должен быть комментарий, я думаю, но никаких прав для меня.

+0

Вы правы. Большое спасибо. Это было глупое отвлечение с моей стороны, потому что я новый список содержал только один элемент, и он работает для других случаев, которые совпадают с этим (даже в проверенных тестах). И этот тест пройдет, если тесты не будут отложены, что очень сбивает с толку и заставило меня подумать, что проблема была в другом месте. Точно так же, как ожидалось неудача, кажется странным. Он должен сказать, что он не мог этого сделать, но представить оба текста и сказать, что один не содержится в другом (когда это на самом деле). – pcatre