当前位置: 首页 > 知识库问答 >
问题:

使用Webpack和Typescript的Karma不执行任何测试

戚鸿
2023-03-14

我试图弄清楚如何将Karma testrunner与Webpack和Typescript源文件一起使用。以该源文件作为唯一的测试文件为例:

测验规格ts

var message: string = 'yay';
alert(message);
describe('1st tests', () => {
  it('true is true', () => expect(true).toBe(true));
});

以及以下业力配置:

因果报应。配置。js

module.exports = function (config) {

  config.set({
    basePath: '',
    frameworks: ['jasmine'],

    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-webpack'),
      require('karma-jasmine-html-reporter')
    ],

    client: {
      builtPaths: ['app/'], // add more spec base paths as needed
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },

    customLaunchers: {
      // From the CLI. Not used here but interesting
      // chrome setup for travis CI using chromium
      Chrome_travis_ci: {
        base: 'Chrome',
        flags: ['--no-sandbox']
      }
    },

    files: [
      { pattern: 'app/test.spec.ts', included: true, watched: true },
    ],

    exclude: [],
    preprocessors: {
      // add webpack as preprocessor
      'app/test.spec.ts': ['webpack']
    },

    webpack: {
      // karma watches the test entry points
      // (you don't need to specify the entry option)
      // webpack watches dependencies

      // webpack configuration
      resolve: {
        //root: [ path.join(__dirname, 'app') ],
        extensions: ['', '.ts', '.js']
      },
      module: {
        loaders: [
          // .ts files for TypeScript
          { test: /\.ts$/, loaders: ['awesome-typescript-loader', 'angular2-template-loader'], exclude: '/node_modules/' },
        ]
      }
    },
    reporters: ['progress', 'kjhtml'],

    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  })
}

运行karma start时未找到任何测试。浏览器将启动,但它表示找到0个测试。当我更改时。ts扩展名为。js并更新karma配置文件,因为它确实起作用,所以很明显是Typescript弄乱了它。

然而,当使用上面的配置手动运行webpack时,它只会输出一个合适的javascript文件,所以配置看起来确实可以...

完整地说,这些是包。jsontsconfig。json文件:

包裹json

{
  "name": "karma-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "karma": "karma init"
  },
  "author": "",
  "license": "ISC",
  "private": true,
  "devDependencies": {
    "@types/jasmine": "^2.5.41",
    "angular2-template-loader": "^0.6.0",
    "awesome-typescript-loader": "^3.0.0-beta.18",
    "jasmine-core": "^2.5.2",
    "karma": "^1.4.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-jasmine": "^1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "karma-webpack": "^2.0.1",
    "typescript": "^2.1.5",
    "webpack": "^1.14.0"
  }
}

tsconfig。json

{
    "compileOnSave": false,
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": true,
        "suppressImplicitAnyIndexErrors": true
    },
    "awesomeTypescriptLoaderOptions": {
        "useWebpackText": true
    },
    "exclude": [
        "node_modules"
    ]
}

共有2个答案

燕翔飞
2023-03-14

我也遇到过这个问题。我最终切换到karma-typecript,它完美地运行测试。

别开诚
2023-03-14

您必须为Typescript文件添加mime类型。否则,Chrome将不会运行这些文件

mime: {
  'text/x-typescript': ['ts']
}
 类似资料:
  • 我正在使用jasmine的karma,并按照在线指南安装了 和其他必需品 我跑了 和 它打开了一个外部铬浏览器,显示因果报应是相关的。我为一个函数写了一个简单的单元测试,它似乎没有运行任何测试 这是我的karma配置文件。 我的单元测试 我要测试的控制器中的特定功能 当我运行因果报应时,控制台上显示的是什么 附加信息:我正在使用AngularJS和RubyonRails。我知道有茉莉宝石可以帮助我

  • 我在我的项目中使用cucumber testNG,并且已经在配置BDD执行和QAF cucumber的基础上添加了一些配置,但是当我运行它时,GherkinScenarioFactory没有运行任何测试。 我添加了依赖qaf和qaf-cucumber版本2.1.15。我还在步骤文件中添加了@QAFTestStepProvider注释。这是我的testng.xml文件: 在我添加的功能文件中:示例:

  • 和下面的一些行 我在1.7.6版本中使用了frontend-maven-plugin,并将其插入到pom.xml中。 我的karma.conf.js看起来是这样的: 我的Package.json: My Angular.json: 我使用以下版本的软件包: IDE 我做错了什么?

  • 我无法用PHPUnit解决测试问题。这是我的密码,有点问题。这是年度百分比计算(https://en.wikipedia.org/wiki/Annual_percentage_rate ). 在cmd中: 不要考虑Oracle模块,这是另一回事。我在“composer安装”之后运行了“phpunit”。 项目/测试/测试概述。php: 项目/phpunit.xml 我解决不了,试了很多次:(

  • 我的Gradle项目使用了KotlinDSL和JUnit5/Jupiter(以及Kotlin作为编程语言),Gradle似乎没有正确地接受我的任何测试。当我在命令行上运行Gradle测试时,它告诉我 不管我怎么尝试。然而,在我的IDE中,我可以轻松地运行项目中的每个单个测试类,而不会出现任何问题。

  • 问题内容: 我希望能够在使用jest时使用webpack别名来解析导入,并且最好参考以避免重复。 开玩笑的conf: Webpack别名: 进口: 由于某种原因,导致了问题,因此将其删除(使用别名和导入)时,可以找到但仍然无法解决。 我尝试使用jest-webpack-alias,babel-plugin-module-resolver和Jest / Webpack docs 问题答案: 这似乎已