将 beforeEach 设置为仅 运行 用于其所在文件中的测试
Get beforeEach to only run for tests in the file it is in
我有两个 mocha 测试文件,每个文件都有自己的 beforeEach 函数。所有测试用例的每个文件 运行s 的 beforeEach。用代码更好地解释:
user.test.js:
beforeEach((done) => {
console.log('user before each');
done();
});
describe('Running user tests', () => {
it('user test #1', () => {
console.log('in user test 1');
});
it('user test #2', () => {
console.log('in user test 2');
});
});
todo.test.js
beforeEach((done) => {
console.log('todo before each');
done();
});
describe('Running todo tests', () => {
it('todo test #1', (done) => {
console.log('in todo test 1');
done();
});
it('todo test #2', (done) => {
console.log('in todo test 2');
done();
});
});
package.json
{
"name": "before-each",
"version": "1.0.0",
"description": "",
"main": "todo.test.js",
"scripts": {
"test": "mocha **/*.test.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"mocha": "^5.2.0"
}
}
当 运行ning: npm test
时输出
Running todo tests
todo before each
user before each
in todo test 1
✓ todo test #1
todo before each
user before each
in todo test 2
✓ todo test #2
Running user tests
todo before each
user before each
in user test 1
✓ user test #1
todo before each
user before each
in user test 2
✓ user test #2
4 passing (7ms)
有什么方法可以让 todo 文件中的 beforeEach() 仅 运行 用于 todo 文件中的测试,而 beforeEach() 用户文件中的 beforeEach() 仅用于 运行用户测试?我来自 Java/JUnit 背景,这表现完全不同。
谢谢!
将beforeEach
移到describe
里面。这是放置属于特定 describe
的 beforeEach
的正确位置:
describe('Running user tests', () => {
beforeEach((done) => {
console.log('user before each');
done();
});
it('user test #1', () => {
console.log('in user test 1');
});
it('user test #2', () => {
console.log('in user test 2');
});
});
我有两个 mocha 测试文件,每个文件都有自己的 beforeEach 函数。所有测试用例的每个文件 运行s 的 beforeEach。用代码更好地解释:
user.test.js:
beforeEach((done) => {
console.log('user before each');
done();
});
describe('Running user tests', () => {
it('user test #1', () => {
console.log('in user test 1');
});
it('user test #2', () => {
console.log('in user test 2');
});
});
todo.test.js
beforeEach((done) => {
console.log('todo before each');
done();
});
describe('Running todo tests', () => {
it('todo test #1', (done) => {
console.log('in todo test 1');
done();
});
it('todo test #2', (done) => {
console.log('in todo test 2');
done();
});
});
package.json
{
"name": "before-each",
"version": "1.0.0",
"description": "",
"main": "todo.test.js",
"scripts": {
"test": "mocha **/*.test.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"mocha": "^5.2.0"
}
}
当 运行ning: npm test
时输出 Running todo tests
todo before each
user before each
in todo test 1
✓ todo test #1
todo before each
user before each
in todo test 2
✓ todo test #2
Running user tests
todo before each
user before each
in user test 1
✓ user test #1
todo before each
user before each
in user test 2
✓ user test #2
4 passing (7ms)
有什么方法可以让 todo 文件中的 beforeEach() 仅 运行 用于 todo 文件中的测试,而 beforeEach() 用户文件中的 beforeEach() 仅用于 运行用户测试?我来自 Java/JUnit 背景,这表现完全不同。
谢谢!
将beforeEach
移到describe
里面。这是放置属于特定 describe
的 beforeEach
的正确位置:
describe('Running user tests', () => {
beforeEach((done) => {
console.log('user before each');
done();
});
it('user test #1', () => {
console.log('in user test 1');
});
it('user test #2', () => {
console.log('in user test 2');
});
});