我正在尝试向我的项目之一添加一些单元测试。
到目前为止,我已经安装并配置了业力,并且已经安装了茉莉花。我的test/
文件夹中有一个测试文件。
业力服务器已启动,浏览器页面已准备就绪,但karma run
失败,如下所示:
$ karma run karma-conf.js
[2014-06-14 15:19:11.046] [DEBUG] config - Loading config /foo/test/karma-conf.js
Waiting for previous execution...
Chrome 35.0.1916 (Linux) ERROR
You need to include some adapter that implements __karma__.start method!
此错误消息不适用于Google。
这很明显,还是我需要提供更多信息?
看来这是一个非常普遍的错误,但是就我而言,问题是我没有从正确的文件夹运行karma start
,或者在更改配置后没有重新启动它。
我将保留此问题,希望它可以成为遇到此错误消息的其他人的资源。
就我而言,该消息实际上非常具有描述性:我忘记将适配器(以Jasmine为例)添加到配置文件中。因此:
module.exports = function(config) {
config.set({
browsers: ['Chrome'],
singleRun: true,
frameworks: ['jasmine'],
files: [
// ... files ...
],
// other configs
});
};
您需要配置“ my.conf.js”文件,因为它包含了用于测试代码的所有信息。
您需要写的全部是这个:
可以使用业力初始化生成配置文件:
$ karma init my.conf.js
您要使用哪个测试框架?按Tab键列出可能的选项。输入以移至下一个问题。
茉莉花
您要使用Require.js吗?这将添加Require.js插件。按Tab键列出可能的选项。输入以移至下一个问题。
否
您是否要自动捕获浏览器?按Tab键列出可能的选项。输入空字符串以移至下一个问题。
Chrome
您的源文件和测试文件在什么位置?您可以使用glob模式,例如。 “ js / *。js”或“ test / ** / * Spec.js”。按Enter键移至下一个问题。
*。js测试/ ** / *。js
是否应排除先前模式所包含的任何文件?您可以使用glob模式,例如。 “ ** / *。swp”。
按Enter键进入下一个问题。
您是否希望Karma监视所有文件并在更改时运行测试?按Tab键列出可能的选项。
是
在“ /Users/vojta/Code/karma/my.conf.js”处生成的配置文件。
在我的情况下,我错误地将commonjs预处理程序应用于karma-*
模块,并且adapter.js
和karma-chrome
中的karma-firefox
被破坏了。
不幸的是,这是一个非常普通的错误。
我必须补充一点,在我的情况下,业力给了我错误,因为我在一个父文件夹的名称中有[方括号]。
Tt抱怨适配器可能是茉莉或摩卡咖啡。适配器丢失,或者没有正确设置,或者是适配器的版本过时或错误。
就我而言,我有一个旧版本的Mocha 2.5.3,它与业力1+不兼容。我将Mocha依赖项更新到最新版本
可用的3.2.0,问题已解决。[在处理大量模糊描述的错误时,我尝试设置basePath:'../',在更正了其他错误(例如,缺少描述为对象内容错误的逗号之后)后,最后一次更改回到basePath:”,工作。因果报应的错误声明需要大量工作。要实现它并不简单。
FWIW-采购karma.conf.js
的文件路径在本地为我工作,但在我的jenkins构建器上不起作用。我零线索为什么会这样,但是在jenkins上,除非karma.conf.js
文件位于发出karma命令的根目录中,否则它将引发此错误。我正在使用Rails并通过rake任务运行js规范。下面的代码可能对某些人有所帮助。
在我的案例中,问题在于业力没有拾取任何文件。在karma.conf.js中修复它可以解决此问题。
我发生了同样的问题,这是由于模块已过时。
就我而言,这根本与业力无关!我使用ES6 / babel从gulp运行业力,实际上是一个代码语法错误,由我业力上方的babel错误标记:
如果您将业力配置文件命名为karma.conf.js
,则只需键入karma start
。
否则指定文件名karma start karmafile.js
(我在正确的目录中,但未指定文件名。)
我有同样的问题。我的浏览器将打开,但是在我的终端上它抛出以下错误
我也一直在为此苦苦挣扎。我想到的是,发生此错误是因为以下原因之一
就我而言,配置文件名不同
运行启动业力时,必须指定karma.config.js
的目录。
我收到此错误是因为我两次都需要相同的依赖关系!
我在karma.conf.js中配置了错误的'文件'
您需要运行karma run
或karma-conf.js所在的文件夹中的任何函数。
就我而言,我必须将文件重命名为karma.conf.js,然后进行karma启动
karma.conf.js
文件代码格式有问题:
files: [
// Modules
,"client/bower_components/angular/angular.min.js"
,"client/bower_components/angular-mocks/angular-mocks.js"
// App
,"client/app/app.module.js"
// Test
// ,"test/**/*.spec.js"
],
files
数组中的多余逗号导致此错误:
You need to include some adapter that implements __karma__.start method!
我没有从karma.conf.js所在的路径运行karma start命令。我切换到该文件夹并运行相同的命令。全部
我在Angular.js代码库上运行规范时遇到了这个问题。我必须运行npm install karma-jasmine -g
才能运行此功能。
如果输入“ karma start”,则当前文件夹中必须具有karma.conf.js文件。或只是“业力开始/path/karma.conf.js”
尝试通过“ karma init /path/karma.conf.js”创建新的karmar.conf.js
我遇到相同的错误,因为该项目使用的是Babel 6,但是我忘记添加babelrc文件。只是分享以防万一。