angular-cli - 单元测试无法在 VSTS 中运行?

标签 angular unit-testing jasmine karma-runner angular-cli

我用 angular-cli 创建了一个项目。 单元测试在我的本地系统中运行良好。 当我在构建过程中运行测试时,在 VSTS 中出现以下错误:

 > ng test --cc Your global Angular CLI version (1.4.9) is greater than your local version (1.4.7). The local Angular CLI version is used. To
> disable this warning use "ng set --global
> warnings.versionMismatch=false". [32m26 10 2017 04:28:02.079:INFO
> [karma]: [39mKarma v1.7.1 server started at http://0.0.0.0:9876/
> [32m26 10 2017 04:28:02.081:INFO [launcher]: **[39mLaunching browser
> ChromeHeadlessNoSandbox with unlimited concurrency [32m26 10 2017
> 04:28:02.089:INFO [launcher]: [39mStarting browser ChromeHeadless   
> [33m26 10 2017 04:29:02.092:WARN [launcher]: [**39mChromeHeadless have
> not captured in 60000 ms, killing****. [33m26 10 2017 04:29:04.095:WARN
> [launcher]: [**39mChromeHeadless was not killed in 2000 ms, sending
> SIGKILL**. [33m26 10 2017 04:29:06.095:WARN [launcher]:
> [**39mChromeHeadless was not killed by SIGKILL in 2000 ms, continuing**.
>  Process completed with exit code 1.

karma 配置如下所示:

> module.exports = function (config) {  config.set({        basePath: '',
>       frameworks: ['jasmine', '@angular/cli'],        plugins: [
>           require('karma-jasmine'),           require('karma-chrome-launcher'),
>           require('karma-jasmine-html-reporter'),
>           require('karma-coverage-istanbul-reporter'),
>           require('@angular/cli/plugins/karma')       ],      client: {
>           clearContext: false // leave Jasmine Spec Runner output visible in
> browser       },      coverageIstanbulReporter: {             reports: ['html',
> 'lcovonly'],          fixWebpackSourcePaths: true         },      mime: {
> 'text/x-typescript': ['ts', 'tsx'] },         angularCli: {           environment:
> 'dev'         },      reporters: ['progress', 'kjhtml'],      port: 9876,
>       colors: true,       logLevel: config.LOG_INFO,      autoWatch: false,
>       browsers: ['ChromeHeadlessNoSandbox'],      customLaunchers: {
>           ChromeHeadlessNoSandbox: {
>               base: 'ChromeHeadless',
>               flags: [
>                   '--no-sandbox', // required to run without privileges
>                   '--disable-gpu',
>                   // Without a remote debugging port, Google Chrome exits immediately.
>                   '--remote-debugging-port=9222'
>               ]           }       },      captureTimeout: 60000,      singleRun: true,        browserNoActivityTimeout : 10000000     }); };

package.json 如下:

  "private": true,
  "dependencies": {
    "@angular/animations": "^4.2.4",
    "@angular/common": "^4.2.4",
    "@angular/compiler": "^4.2.4",
    "@angular/core": "^4.2.4",
    "@angular/forms": "^4.2.4",
    "@angular/http": "^4.2.4"
  },
  "devDependencies": {
    "@angular/cli": "1.4.7",
    "@angular/compiler-cli": "^4.2.4",
    "@angular/language-service": "^4.2.4",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "~3.2.0",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0"
  }
}

感谢任何解决错误的帮助。

提前致谢。

最佳答案

首先,您不需要在 VSTS 代理上全局安装 Angular CLI,您只需运行:

npm run ng -- t - 它将使用 Angular CLI 的本地项目版本,无论它是什么版本。

第二个VSTS does not support Headless chrome yet

因此,请尝试设置 browsers: ['Chrome'] 而不是使用普通的 Chrome 浏览器。

您也可能想尝试VSTS Chromium Build Task (目前处于预览阶段,因此可能不起作用)

FYI currently on our project we are rinning tests on VSTS with normal Chrome and have no problems with that. In order to do that you have to install Chrome browser on your build agent machine https://learn.microsoft.com/en-us/vsts/build-release/concepts/agents/agents.

关于angular-cli - 单元测试无法在 VSTS 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46946120/

相关文章:

angular - 我需要在 CI 作业中缓存什么以避免每次 ngcc 重新编译?

node.js - 需要完成 426 升级

visual-studio-2008 - Visual Studio NUnit 集成

angular - @ngrx/效果 : testing an effect returns empty()

angular - 如何测试 Angular Service Worker

angular - 如何从测试代码中触发 Angular Material MatSelect 上的 selectionChange 事件

javascript - Chart.js ng2-饼图中的图表颜色未显示

Ruby Test :Unit, 如何知道测试套件中每个测试用例的失败/通过状态?

javascript - 如何测试我的 HTML 元素的祖先是否具有 CSS 类?

node.js - 如何使用不同的 NODE_PATH 运行 NodeJS 单元测试