【问题标题】:How do I get 'npm test' to find my karma.conf.js file?如何让“npm test”找到我的 karma.conf.js 文件?
【发布时间】:2017-12-05 15:00:56
【问题描述】:

我的应用程序中有以下结构:

Web (Asp net core)
|
|--wwwroot
|--ClientApp
|  |--app
|  |  |-- ... (typescript modules, *.spec.js files etc.)
|  |
|  |--karma.config.js
|  |--test-main.js
|
|--Controllers
|--config.json files for web etc.

在控制台中,我在运行时位于 ClientApp 文件夹中:

npm test

我收到以下错误:

File C:\Users\...\Web\karma.conf.js does not exist!

为什么它会尝试在 Web 文件夹中查找 karma.conf.js 文件?

我如何告诉它在正确的位置寻找?即使我 CD 到 app 文件夹,我也会得到完全相同的错误。

如果我尝试将 karma.conf.js 文件放在它期望的位置,我会收到一堆其他错误,例如:

cannot find module requirejs

我非常困惑,非常感谢一些帮助。

karma.conf.js 文件:

module.exports = function(config) {
config.set({

basePath: '',
frameworks: ['jasmine', 'requirejs'],
files: [
  'test-main.js',
  {pattern: 'test/**/*spec.js', included: false},
  {pattern: '*.js', included: false}
],
exclude: [
],
preprocessors: {
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome', 'Firefox'],
singleRun: false,
concurrency: Infinity
})
}

test-main.js:

var allTestFiles = []
var TEST_REGEXP = /(spec|test)\.js$/i

Object.keys(window.__karma__.files).forEach(function (file) {
  if (TEST_REGEXP.test(file)) {
    var normalizedTestModule = file.replace(/^\/base\/|\.js$/g, '')
    allTestFiles.push(normalizedTestModule)
  }
})

require.config({
  baseUrl: '/base',
  deps: allTestFiles,
  callback: window.__karma__.start
})

【问题讨论】:

  • 你的package.json也在ClientApp目录下吗?

标签: javascript npm jasmine karma-runner


【解决方案1】:

只需进入您的package.json 并编辑test 脚本以指向您的业力配置的位置。

"scripts": {
    "test": "karma start ./path/to/karma.conf.js"
}

【讨论】:

  • 在我的 angular-cli.json 文件中指定...很多我用来灵感的例子都没有这个文件。一切都以如此快的速度发展,以至于大多数示例在几个月内就已经过时了。太混乱了。
猜你喜欢
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 2021-02-08
相关资源
最近更新 更多