Javascript 在运行mocha测试时,如何解决所有错误之前的问题?
这个错误最近开始出现在我的mocha测试套件中,我找到的答案并不能真正帮助理解问题所在 我得到的错误是:Javascript 在运行mocha测试时,如何解决所有错误之前的问题?,javascript,node.js,mocha.js,Javascript,Node.js,Mocha.js,这个错误最近开始出现在我的mocha测试套件中,我找到的答案并不能真正帮助理解问题所在 我得到的错误是: /var/lib/jenkins/workspace/test_suite/test/integration/adds_image_and_confirms_style_via_edit_button.js Thu Jul 25 2019 15:46:22 GMT+0000 (utc) DB Reset complete! Orgs in database [ 102 ] (node:252
/var/lib/jenkins/workspace/test_suite/test/integration/adds_image_and_confirms_style_via_edit_button.js
Thu Jul 25 2019 15:46:22 GMT+0000 (utc)
DB Reset complete!
Orgs in database
[ 102 ]
(node:25283) DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany, or bulkWrite instead.
(node:25283) DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
Entering pin: null
1) "before all" hook: ret
0 passing (8s)
1 failing
1) Admin adds survey with rich text and confirms style via edit button
"before all" hook: ret:
TypeError: each key must be a number of string; got object
at keys.forEach.key (node_modules/selenium-webdriver/lib/webdriver.js:1971:21)
at Array.forEach (<anonymous>)
at Promise.all.then.keys (node_modules/selenium-webdriver/lib/webdriver.js:1966:16)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
From: Task: WebElement.sendKeys()
at Driver.schedule (node_modules/selenium-webdriver/lib/webdriver.js:414:17)
at WebElementPromise.schedule_ (node_modules/selenium-webdriver/lib/webdriver.js:1820:25)
at WebElementPromise.sendKeys (node_modules/selenium-webdriver/lib/webdriver.js:1983:19)
at test/init.js:115:14
at node_modules/selenium-webdriver/lib/webdriver.js:753:14
at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:2736:14)
at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:2719:21)
at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2642:25)
at node_modules/selenium-webdriver/lib/promise.js:639:7
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
From: Task: <anonymous>
at pollCondition (node_modules/selenium-webdriver/lib/promise.js:2178:16)
at node_modules/selenium-webdriver/lib/promise.js:2174:9
at new ManagedPromise (node_modules/selenium-webdriver/lib/promise.js:1029:7)
at node_modules/selenium-webdriver/lib/promise.js:2173:14
at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:2736:14)
at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:2719:21)
at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2595:27)
at node_modules/selenium-webdriver/lib/promise.js:639:7
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
From: Task: <anonymous wait>
at ControlFlow.wait (node_modules/selenium-webdriver/lib/promise.js:2171:17)
at Driver.wait (node_modules/selenium-webdriver/lib/webdriver.js:749:29)
at Object.kTest.customSendKeys (test/init.js:112:25)
at Object.kTest.enterPin (test/init.js:137:11)
at test/integration/adds_image_and_confirms_style_via_edit_button.js:93:19
at ManagedPromise.invokeCallback_ (node_modules/selenium-webdriver/lib/promise.js:1315:14)
at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:2736:14)
at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:2719:21)
at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2595:27)
at node_modules/selenium-webdriver/lib/promise.js:639:7
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
From: Task: Admin adds survey with rich text and confirms style via edit button
"before all" hook: ret
at Context.ret (node_modules/selenium-webdriver/testing/index.js:137:10)
启用超时
不起作用,顺便说一句
Test.describe("Adds image and confirms style via edit button\n", function() {
this.timeout(mochaTimeOut);
Test.before(function(done) {
kTest.logFilename(__filename);
kTest.setup().then(function() {
return Factory.createA({
...
});
}).then(function () {
return Factory.createB({
...
});
}).then(function () {
return Factory.createC({
...
});
}).then(function () {
return Factory.createD({
...
});
}).then(function () {
kTest.login(testVariables.email, testVariables.password);
}).then(function () {
var elementSelector = 'h3';
var element = kTest.driver.findElement(By.css(elementSelector));
element.getText().then(function(text) {
assert.equal(text, "Enter your pin");
});
}).then(function() {
return adminDb.Users.findOne({userId: testVariables.userId});
}).then(function(admin) {
kTest.enterPin(admin.textPin, testVariables.password);
}).then(function() {
var button = kTest.driver.wait(until.elementLocated(By.className('fa-bars')), K_TEST_TIMEOUT);
button.click();
kTest.driver.findElement(By.className("side_menu_q")).click();
kTest.driver.wait(until.elementLocated(By.id("selectOption")), K_TEST_TIMEOUT);
var elementSelector = "h4";
var element = kTest.driver.findElement(By.css(elementSelector));
element.getText().then(function(val) {
assert.equal(val, "IMAGE NAMES");
});
}).then(function() {
done();
}).catch(function(err) {
throw err;
});
});
...
});