EXCLUSIVE TESTS
在用例测试集或者用例单元后面加上.only()
方法,可以让mocha只测试此用例集合或者用例单元。下面是一个仅执行一个特殊的测试单元的例子:
describe('Array', function () {
describe.only('#indexOf()', function () {
// ....
})
})
注意:在Array用例集下面嵌套的集合,只有#indexOf用例集合会被执行。
下面的这个例子是仅仅执行唯一一个测试单元。
describe('Array', function() {
describe('#indexOf', function() {
it.only('should return -1 unless preset', function () {
// ...
})
it('should return the index when present', function () {
// ...
})
})
})
在v3.0.0版本之前,.only()
函数通过字符串匹配的方式去决定哪个测试应该被执行。但是在v3.0.0版本及以后,.only()
可以被定义多次来定义一系列的测试子集。
describe('Array', function () {
describe('#indexOf', function () {
it.only('should return -1 unless present', function () {
// this test will be run
})
it.only('should return index when present', function () {
// this test will also be run
})
it('should return -1 if called with a non-Array context', function () {
// this test will not be run
})
})
})
你也可以选择多个测试集合:
describe('Array', function () {
describe.only('#indexOf()', function () {
it('should return -1 unless present', function() {
// this test will be run
});
it('should return the index when present', function() {
// this test will also be run
});
});
describe.only('#concat()', function () {
it('should return a new Array', function () {
// this test will also be run
});
});
describe('#slice()', function () {
it('should return a new Array', function () {
// this test will not be run
});
});
})
上面两种情况也可以结合在一起使用:
describe('Array', function () {
describe.only('#indexOf()', function () {
it.only('should return -1 unless present', function () {
// this test will be run
})
it('should return the index when present', function () {
// this test will not be run
})
})
})
注意:如果有钩子函数,钩子函数会被执行。
除非你是真的需要它,否则不要提交
only()
到你的版本控制中。