如何在Karma中运行特定的测试文件? (角度4+)

时间:2019-09-17 16:19:30

标签: angular testing jasmine karma-runner

当我运行ng test时,它会遍历所有测试文件。

通过运行提供文件的路径,我找到了答案:

ng test --main src/app/pages/home-modal/home-modal.component.spec.ts

关于stackoverflow,但我认为它已被弃用,并且我收到此错误:

async()需要AsyncTestZoneSpec

这是我的karma.config.ts文件:

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: {
      reports: ['html', 'lcovonly', 'text-summary'],
      fixWebpackSourcePaths: true
    },
    reporters: ['progress', 'kjhtml'],
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    restartOnFileChange: true
  });

};

有人知道在Karma for Angular 4+中运行特定文件的新方法吗?

2 个答案:

答案 0 :(得分:0)

在您的test.ts文件中,您应该为

const context = require.context('./', true, /\.spec\.ts$/);

/\.spec\.ts$/的最后一部分是正则表达式,用于加载以.spec.ts结尾的所有查找。

您可以(暂时)将其更改为/your\.component\.spec\.ts$/,然后照常运行npm test

答案 1 :(得分:0)

要运行单个测试文件,请将文件中的describe块更改为fdescribe,然后像往常一样使用ng test运行测试。

您还可以使用fit单独运行一个测试用例。