Karma 找不到我的 spec.ts 文件测试

问题描述 投票:0回答:4

我有以下

karma.config.js
基于 this

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 秒)

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

angular typescript karma-runner
4个回答
3
投票

this答案的背景下,我意识到我的项目中没有以下文件:

  1. 测试.ts
  2. polyfills.ts
  3. 角度.json

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

为了解决这个问题,我所做的是:

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

2
投票

如果您确定您的路径中有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:
,所以你也可以尝试删除它。


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();

0
投票

这发生在我的单元测试中,实际上是我进行的单元测试之一

import { NO_ERRORS_SCHEMA } from '@angular/compiler/src/core';

我替换为

import { NO_ERRORS_SCHEMA } from '@angular/core';
© www.soinside.com 2019 - 2024. All rights reserved.