业力没有找到我的spec.ts文件测试

时间:2018-08-11 17:29:33

标签: angular typescript karma-runner

我有以下基于thiskarma.config.js

module.exports = function (config) {
  config.set({
    basePath: '',
    files: ['**/*spec.ts'],
    frameworks: ['jasmine'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter')
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, '../coverage'),
      reports: ['html', 'lcovonly'],
      fixWebpackSourcePaths: true
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};

我不明白为什么报告说执行了0个测试。我确定我的src文件夹中有一些扩展名为spec.ts的文件。

  

Chrome 68.0.3440(Windows 10.0.0):执行0的0错误(0.079秒/ 0秒)

有人知道可能是什么问题吗?

4 个答案:

答案 0 :(得分:2)

您需要检查src / test.ts中的路径。这是我的代码。

// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
// Finally, start Karma to run the tests.
__karma__.start();

答案 1 :(得分:1)

this的情况下,我意识到我没有在项目中关注以下文件:

  1. test.ts
  2. polyfills.ts
  3. angular.json

我还没有意识到,因为这是一个安装在另一个项目上的项目。这意味着我永远不需要将这个项目作为独立的应用程序运行。

要解决此问题,我要做的是:

  1. 通过运行命令ng new my-app
  2. 创建一个新的角度项目
  3. 检查项目中不存在的配置文件(与此创建的新项目相比)
  4. 将此文件导入到与创建的新项目的文件相同的相对路径。
  5. 运行项目并检查可能出现的新错误。

答案 2 :(得分:0)

如果确保您的路径中有spec.ts文件,这是我在karma.config和我的文件之间看到的唯一区别:

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')
],

我查看这个问题之前,我根本没有files:,因此您也可以尝试删除它。

答案 3 :(得分:0)

这种情况发生在我的单元测试中,实际上是我曾经进行过的单元测试之一

从'@ angular / compiler / src / core'导入{NO_ERRORS_SCHEMA};

我替换为

从'@ angular / core'导入{NO_ERRORS_SCHEMA};