gpt4 book ai didi

javascript - Karma 测试成功但 PhantomJS 返回 "An error was thrown in afterAll"SyntaxError : Unexpected token ','

转载 作者:行者123 更新时间:2023-11-30 06:15:37 24 4
gpt4 key购买 nike

我们所有的 karma 单元测试似乎在我们的自动构建中都成功了,但是 PhantomJS 运行器向构建框架 (TeamCity) 返回了一个非零结果。我可以在日志中找到的唯一错误是:

[17:53:31][JavaScript Unit Tests] PhantomJS 2.1.1 (Windows 8.0.0) ERROR
[17:53:31][JavaScript Unit Tests] An error was thrown in afterAll
[17:53:31][JavaScript Unit Tests] SyntaxError: Unexpected token ','

项目正在使用:

  • AngularJS@1.4.8
  • karma @4.1.0
  • npm@6.9.0
  • Node.js@v12.3.1

karma .conf.js:

// Karma Configuration
module.exports = function (config) {
config.set({
browsers: ["PhantomJS"],
files: [
"scripts/vendor/angularjs/1.4.8/angular.js",
"scripts/vendor/angularjs/1.4.8/angular-animate.js",
"scripts/vendor/*.js",
"scripts/angular/**/*.module.js",
"scripts/angular/**/*.app.js",
"scripts/angular/**/*.js",
"scripts/angular/**/spec/*.spec.js"
],
exclude: [
"scripts/vendor/angular-1*.js",
"scripts/vendor/angular-animate.js",
"scripts/angular/anycastManagementApp/anycastManagement.app.js",
"scripts/angular/cart/**/.js",
"scripts/angular/cart/*.js",
"scripts/vendor/bootstrap.min.js",
"scripts/angular/angular-bootstrap-datetimepicker/**/*.*"
],
plugins: [
"karma-jasmine",
"karma-jasmine-matchers",
"karma-chrome-launcher",
"karma-phantomjs-launcher",
"karma-teamcity-reporter",
"karma-spec-reporter",
"karma-coverage"
],
frameworks: ["jasmine", "jasmine-matchers"],
port: 9000,
logLevel: config.LOG_DEBUG,
client: {
jasmine: {
random: false
}
}
});
}

我尝试过的事情:

  • karma/Node.js 的几个不同版本。
  • 一些类似的问题表明我们的测试中存在竞争条件,我们应该禁用 karma 的默认随机排序,但这没有帮助。
  • 我们的 .spec.js 文件中没有任何地方是异步的。

我的后续步骤:我想我会开始禁用个别测试,看看它们中的任何一个是否对这个 afterAll 结果有影响。

更新:通过 xdescribe 禁用所有测试并没有解决错误。所以我知道错误与测试本身无关,而是与插件/库中的某些错误或不兼容有关。

最佳答案

显然 PhantomJS 自 2016 年 (v2.1.1) 以来就没有更新过,并且不是一个活跃的项目。似乎 recommendationreplace PhantomJS in your projects with ChromeHeadless .

就连 PhantomJS 的维护者 Vitaliy Slobodin 也谈到了 ChromeHeadless:

I think people will switch to it, eventually. Chrome is faster and more stable than PhantomJS. And it doesn’t eat memory like crazy.

如果能找到一个不依赖于 Google 的 headless 浏览器就好了,但显然 PhantomJS 无论如何都在使用基于 WebKit 的引擎,所以我们并没有因为进行此更改而真正失去任何浏览器的多样性/广度。

按照链接文章中的说明,我的问题差不多解决了。我确实遇到了另一个类似的 afterAll error与缺少的库引用相关。我怀疑这是与 PhantomJS 相同的错误,但没有被正确报告。切换到 ChromeHeadless 后,错误报告正确且易于修复。

关于javascript - Karma 测试成功但 PhantomJS 返回 "An error was thrown in afterAll"SyntaxError : Unexpected token ',' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56399262/

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