我正在使用Karma / Jasmine运行许多spec文件。我的测试使用了一些全局函数。一些测试模拟全局函数,其他测试依赖于它们。由于测试是异步运行的,因此某些测试失败,因为全局函数的预期行为会被其他测试更改。
有没有办法按顺序运行测试?
答案 0 :(得分:2)
在jasmine.json中将“ random”设置为false
(spec / support / jasmin.json)
答案 1 :(得分:0)
我不认为异步测试会在同一时间运行两个测试。这种副作用很可能发生,因为在单个测试结束后您没有重置全局函数。如果在每次测试后没有恢复全局函数,并且下一个运行的测试(可能是套件中的任何单个测试)如果依赖于相同的函数则可能会失败。
例如(使用sinon)
describe("A suite", function() {
beforeEach(function() {
sinon.stub(someGlobal, 'someFunc')
});
afterEach(function() {
someGlobal.sumFunc.restore()
})
it("uses global function", function() {
...
});
});
*但是,您可以在jasmine配置中将随机设置为false,以按顺序运行您的规范 - https://jasmine.github.io/setup/nodejs.html。