按顺序运行Jasmine测试

时间:2018-03-02 21:15:21

标签: testing webpack jasmine karma-runner

我正在使用Karma / Jasmine运行许多spec文件。我的测试使用了一些全局函数。一些测试模拟全局函数,其他测试依赖于它们。由于测试是异步运行的,因此某些测试失败,因为全局函数的预期行为会被其他测试更改。

有没有办法按顺序运行测试?

2 个答案:

答案 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