gpt4 book ai didi

javascript - 为什么用 Node.js 运行 Mocha 第一次可以,但第二次不行?

转载 作者:行者123 更新时间:2023-11-28 21:31:16 27 4
gpt4 key购买 nike

我有一个测试应用程序,它有一个 UI,允许用户选择某些测试并通过单击带有 Mocha 的按钮来运行这些测试。出于某种原因,第一次运行测试,我得到了通过的结果(2 个通过或其他)。即使选择了所有相同的值,任何后续的按钮点击都会运行 Mocha,但它运行 0 个测试。因此,它返回 0 通过。下面是在进行 AJAX POST 时运行的代码:

var Mocha = require('mocha'),
fs = require('fs'),
path = require('path');

var mocha = new Mocha({
reporter: 'list'
});

fs.readdirSync('node_modules/selenium-webdriver/nb_tests/').filter(function (file) {
return file.substr(-3) === '.js';
}).forEach(function (file) {
mocha.loadFile(path.join('node_modules/selenium-webdriver/nb_tests/', file));
});

// Now, you can run the tests.
mocha.run(function (failures) {
process.on('exit', function () {
process.exit(failures);
});
});

顺便说一句,当我在运行测试之前使用 console.log(mocha) 时,它们在所有请求上都是相同的。任何想法可能导致问题的原因是什么?

最佳答案

想通了...看来 Mocha 不喜欢我为每个 POST 创建一个新实例。上面的代码都包含在路由处理程序中。所以,这就是我所做的:

var Mocha = require('mocha');
var path = require('path');
var fs = require('fs');

var mocha = new Mocha({
reporter: 'list'
});

app.post('/runtest', function (req, res) {
fs.readdirSync('node_modules/selenium-webdriver/nb_tests/').filter(function (file) {
return file.substr(-3) === '.js';
}).forEach(function (file) {
mocha.addFile(path.join('node_modules/selenium-webdriver/nb_tests/', file));
});

mocha.run();
});

关于javascript - 为什么用 Node.js 运行 Mocha 第一次可以,但第二次不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21386624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com