首页 > 解决方案 > 如何使用 Travis(没有捕获的浏览器)进行 Angular 单元测试?

问题描述

我的单元测试在我的 shell 中使用“ng test”工作,但不适用于 Travis:Travis 中没有捕获的浏览器

我正在使用业力,karma.conf.js:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, 'coverage'), reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },

    files: [
      { pattern: 'src/app/*.ts', served: true, watched: true, included: false},
      { pattern: 'src/app/**/**/*.spec.ts', served: true, watched: true, included: false}
    ],
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    //browsers: ['Chrome'],
    browsers: ['ChromeNoSandbox'],
    customLaunchers: {
      ChromeNoSandbox: {
        base: 'Chrome',
        flags: ['--no-sandbox']
      }
    },
    singleRun: false,
    browserNoActivityTimeout: 25000
  });
};

然后,这是我的 .travil.yml :

 language: node_js

sudo: required 
node_js:
  - node

# addons: 
#   chrome: stable
#   firefox: latest

apt:
  sources:
    - google-chrome
  packages:
    - python
    - golang
    - google-chrome-stable
    - google-chrome-beta

before_install:
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get install google-chrome-stable
- export CHROME_BIN=usr/bin/google-chrome
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start



before_script:
- "sudo chown root /opt/google/chrome/chrome-sandbox"
- "sudo chmod 4755 /opt/google/chrome/chrome-sandbox"

# No need these two lines if you use latest version of node
# - npm install
# - npm update

- yarn


# - export CHROME_BIN=usr/bin/google-chrome
# - export DISPLAY=:99.0
# - sh -e /etc/init.d/xvfb start
# - sudo apt-get update
# - sudo apt-get install -y libappindicator1 fonts-liberation
# - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# - sudo dpkg -i google-chrome*.deb


# install:
# - npm install -g @angular/cli

script:
# - npm test
- yarn e2e
- yarn lint
- yarn test

我看到了很多解决方案,但没有什么对我有用。

我不知道是否有链接,但 Karma start 在我的项目中也不起作用,出现此错误: '@angular-devkit/build-angular/plugins/karma' karma 插件旨在用于在 Angular CLI 中,并且在它之外无法正常工作

标签: angularunit-testingtravis-ci

解决方案


我解决了这个问题。我刚刚通过 export CHROME_BIN=chromium-browser 在 .travils.yml 中更改了 export CHROME_BIN=usr/bin/google-chrome,并为 ng 测试添加了一个选项 --watch=false。


推荐阅读