使用shardTestFiles配置的测试时,量角器toContain失败:true

时间:2015-02-09 11:22:07

标签: angularjs protractor angularjs-e2e

我正在使用量角器进行一些有角度的e2e测试并且没有达到预期的效果。

  

期望:预期['集成测试获取者自动   生成欧元,英镑,美元激活']以包含'整合   测试收购者自动生成EUR'。

我在这个期望中使用的代码是:

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

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

因此,“Integration Test Acquirer Automatically generated EUR”实际上包含在“Integration Test Acquirer Automatically generated EUR,GBP,USD”中。

我应该提一下,当我使用测试的分片(运行浏览器的多个实例而不是只有一个,并在它们之间划分测试)时,此测试才会失败。测试在firefox的5个实例中运行。另一件事是我正在使用包含而不是查看整个字符串并使用匹配器“toEqual”,因为当我运行测试时,在两种货币之间划分空间(应该是“EUR,GBP,USD”最终是“欧元,英镑,美元“)被删除。我对第二个问题并不在意,但我确实关心第一个问题。再次,当我使用config运行测试时,这个问题只会出现:

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

如果我删除shardTestFiles: true测试通过。

以下是有关失败测试的全部信息:

  

期望:预期['集成测试获取者自动   生成欧元,英镑,美元激活']以包含'整合   测试收购者自动生成EUR'。       错误:期望失败           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)           在包装器[as _onTimeout](timers.js:252:14)           在Timer.listOnTimeout [as onoutout](timers.js:110:15)期望:预期的''集成测试获取者   自动生成的EUR,GBP,USD激活']包含   '英镑'。       错误:期望失败           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)           在包装器[as _onTimeout](timers.js:252:14)           在Timer.listOnTimeout [as onoutout](timers.js:110:15)期望:预期的''集成测试获取者   自动生成的EUR,GBP,USD激活']包含   '美元激活'。       错误:期望失败           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)           在包装器[as _onTimeout](timers.js:252:14)           在Timer.listOnTimeout [as ontimeout](timers.js:110:15)

1 个答案:

答案 0 :(得分:4)

您的选择器(processingPathListElement)返回多个元素,这就是期望失败的原因。这不是一个" toContain"问题。

我想这应该是评论,但对我没有任何权利。