gpt4 book ai didi

Angular 6 单元测试 : An error was thrown in afterAll\nReferenceError: Can't find variable: $ thrown

转载 作者:太空狗 更新时间:2023-10-29 16:54:16 24 4
gpt4 key购买 nike

在运行我的单元测试时,有时,即使它们通过了,在所有测试运行结束时,我也会收到以下错误。

在运行 PhantomJS 的 Jenkins CI 构建中:

.PhantomJS 2.1.1 (Linux 0.0.0) ERROR
{
"message": "An error was thrown in afterAll\nReferenceError: Can't find variable: $ thrown",
"str": "An error was thrown in afterAll\nReferenceError: Can't find variable: $ thrown"
}

或者在 Chrome 上:

Chrome 67.0.3396 (Windows 7 0.0.0) ERROR
{
"message": "An error was thrown in afterAll\n[object ErrorEvent] thrown",
"str": "An error was thrown in afterAll\n[object ErrorEvent] thrown"
}

我也有非常不可靠的测试,如果不做任何更改,有时它们会成功,而有时相同的测试会失败,所以我知道发生了一些奇怪的事情。

最佳答案

我的问题是,由于设置测试的方式非常愚蠢,我在测试中遇到了竞争条件,但我还是想在这里记录下来,因为我很难在互联网上找到我的问题的答案。

我不知何故所做的是声明两个 beforeEach 函数来设置我的测试,其中两个函数是异步的,所以我有一个竞争条件,有时它们会乱序运行并失败。

这是我的测试结果:

beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ HomeComponent ]
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(HomeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

因此,为了解决这个问题,我将所有设置整合到一个同步 beforeEach 中。

  beforeEach(() => {
TestBed.configureTestingModule({
declarations: [HomeComponent]
}).compileComponents();
fixture = TestBed.createComponent(HomeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

我浪费了太多时间试图解决这个问题,所以我把它放在这里是为了救别人。

关于Angular 6 单元测试 : An error was thrown in afterAll\nReferenceError: Can't find variable: $ thrown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51543241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com