我正在使用量角器进行一些有角度的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)
答案 0 :(得分:4)
您的选择器(processingPathListElement)返回多个元素,这就是期望失败的原因。这不是一个" toContain"问题。
我想这应该是评论,但对我没有任何权利。