2015-02-09 82 views
0

我正在使用量角器运行一些角度e2e测试并获得失败的期望。使用shardTestFiles配置测试时,量角器toContain失败: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'); 

因此,“集成测试收购自动生成EUR”文本实际上是包含在“集成测试收购自动生成的欧元,英镑,美元” 。

我应该提到,当我使用测试的分片(运行浏览器的多个实例而不是一个,并将测试划分在其中)时,此测试仅失败。测试运行在5个firefox实例中。另一件事是我使用的是包含,而不是查看整个字符串,并使用匹配器“toEqual”,因为当我运行测试时,分割货币之间的空间(应该是“EUR,GBP,USD”最终成为“欧元,英镑,美元“)被删除。我不在乎第二个问题,但我关心第一个问题。如果我删除shardTestFiles: true测试通过

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

;再此问题只表现当我运行与配置的测试。

这里是关于失败的测试整个信息:

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 2015-02-10 10:24:22

相关问题