Javascript 在运行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

这个错误最近开始出现在我的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: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;
    });
});
...
});