一个失败的测试导致其他异步测试失败

Daa*_*aan 8 javascript unit-testing asynchronous jasmine karma-runner

我有一个非常基本的业力/茉莉花设置,其中一个测试套件包含两个测试.我希望第一次测试失败,第二次测试通过.

describe("The system", function() {

    it("should fail", function() {
        expect(true).toBe(false);
    });

    it("should succeed", function(done) {
        setTimeout(function() {
            expect(1).toBe(1);
            done();
        }, 10);
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,当我在浏览器中运行这些测试并单击Debug按钮打开Karma DEBUG RUNNER时,我看到两个测试都失败了,第二个测试失败并显示第一个测试的错误消息.常规测试运行(即不在Karma DEBUG RUNNER中)按预期工作.

第二个测试的错误消息是:

Uncaught Expected true to be false.
    at UserContext.<anonymous> (http://localhost:9876/base/workingspec.js:4:22) thrown
Run Code Online (Sandbox Code Playgroud)

当我禁用或删除第一个测试时,第二个测试通过.

为什么在这种情况下两个测试都失败了?为什么第二次测试失败并显示第一次测试的错误消息?


我的测试设置包含以下软件包/版本:

+-- jasmine-core@2.7.0
+-- karma@1.7.0
+-- karma-chrome-launcher@2.2.0
+-- karma-jasmine@1.1.0
`-- karma-jasmine-html-reporter@0.2.2
Run Code Online (Sandbox Code Playgroud)

Daa*_*aan 2

问题确实出在Debug.jsKarma Debug Runner 的文件中,正如@user907860已经暗示的那样。这并不是茉莉花特有的。我已经报告了这个问题创建了一个修复程序,该修复程序刚刚合并到 Karma 的主分支中,因此下一个版本应该可以解决这个问题。