我有一个测试应用程序,它有一个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);
});
});
顺便说一句,当我在运行测试之前调试.log(mocha)时,它们在所有请求中都是相同的。可能导致问题的任何想法?
答案 0 :(得分:1)
想出来......似乎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();
});