在 Mocha 测试中导出变量
Export variable in Mocha test
为了阐明我正在尝试做的事情是:在下面的测试是 运行 之后,我得到了生成的 report.json
和我在 before 挂钩中生成的令牌并发送向另一个 api 报告以供其处理。
我有一个 mocha 测试,我在其中生成了一个令牌,我需要生成的这个令牌与另一个 js 文件共享。
var token = 'un_assigned';
describe('Comparison', function () {
token = 'sin asignar';
before(function (done) {
getToken('app', function (response) {
token = response.token;
done();
})
});
files.forEach(function (file) {
it('Comparing ' + file, function (done) {
const id = file.split('./screenshots/')[1];
compare(file, id, token, function (response) {
expect(response.TestPassed).to.be.true;
done();
});
});
});
after(function (done) {
done();
})
});
exports.tokenApi = function getToken(){
console.log(token);
return token;
};
测试后 运行 我需要将生成令牌传递给另一个 JS 文件,以便我可以处理 mocha 报告。我尝试使用导出但是当我调用我的函数时它调用我的测试。我是一个 JS 菜鸟,我有什么遗漏吗?
使用文件系统(推荐)
使用fs
模块将令牌写入文件,然后根据需要读取此令牌即可。
const fs = require('fs')
exports.tokenApi = function getToken(){
console.log(token);
// write token to file here
fs.writeFile('token.txt', token, (err) => console.error(err))
return token;
};
或者使用节点模块语法
你很接近,只是你没有正确导出你的模块,你必须使用 node module syntax
tokenApi = function getToken(){
console.log(token);
return token;
};
module.exports=tokenApi
但是第二种方法不适用于您的示例,因为只有在测试 运行.
之后才会设置令牌
此外,除非您打算进行 运行ning 测试,否则您不应导入测试套件,因为标准 javascript 文件不会了解 mocha 命令。
为了阐明我正在尝试做的事情是:在下面的测试是 运行 之后,我得到了生成的 report.json
和我在 before 挂钩中生成的令牌并发送向另一个 api 报告以供其处理。
我有一个 mocha 测试,我在其中生成了一个令牌,我需要生成的这个令牌与另一个 js 文件共享。
var token = 'un_assigned';
describe('Comparison', function () {
token = 'sin asignar';
before(function (done) {
getToken('app', function (response) {
token = response.token;
done();
})
});
files.forEach(function (file) {
it('Comparing ' + file, function (done) {
const id = file.split('./screenshots/')[1];
compare(file, id, token, function (response) {
expect(response.TestPassed).to.be.true;
done();
});
});
});
after(function (done) {
done();
})
});
exports.tokenApi = function getToken(){
console.log(token);
return token;
};
测试后 运行 我需要将生成令牌传递给另一个 JS 文件,以便我可以处理 mocha 报告。我尝试使用导出但是当我调用我的函数时它调用我的测试。我是一个 JS 菜鸟,我有什么遗漏吗?
使用文件系统(推荐)
使用fs
模块将令牌写入文件,然后根据需要读取此令牌即可。
const fs = require('fs')
exports.tokenApi = function getToken(){
console.log(token);
// write token to file here
fs.writeFile('token.txt', token, (err) => console.error(err))
return token;
};
或者使用节点模块语法
你很接近,只是你没有正确导出你的模块,你必须使用 node module syntax
tokenApi = function getToken(){
console.log(token);
return token;
};
module.exports=tokenApi
但是第二种方法不适用于您的示例,因为只有在测试 运行.
之后才会设置令牌此外,除非您打算进行 运行ning 测试,否则您不应导入测试套件,因为标准 javascript 文件不会了解 mocha 命令。