错误:您需要包含一些实现__karma __。start方法的适配器

我试图添加一些unit testing到我的一个项目。

到目前为止,我已经安装并configuration了业力,并安装了茉莉花。 我在我的test/文件夹中有一个testing文件。

业务服务器已经启动,浏览器页面准备就绪,但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从正确的文件夹karma start ,或者我没有重新启动后更改configuration。

我将把这个问题留给公众,希望它能成为其他谁遇到这个错误信息的资源。

如果你命名你的karmaconfiguration文件karma.conf.js ,你可以简单地键入karma start

否则指定文件名karma start karmafile.js

(我在正确的目录中,但没有指定文件名。)

你需要在karma-conf.js所在的文件夹中运行你的karma run或任何function。

在我的情况下,我不得不将文件重命名为karma.conf.js,然后做业力开始

我没有从我的karma.conf.js所在的path运行karma start命令。 我切换到该文件夹​​并运行相同的命令。 就这样

我有一个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! 

我在运行Angular.js代码库的规范时遇到了这个问题。 我不得不运行npm install karma-jasmine -g来获得这个工作。

如果你input“karma start”,你必须在当前文件夹中有一个karma.conf.js文件。 或者只是“业力开始/path/ karma.conf.js”

尝试通过“karma init /path/karma.conf.js”创build一个新的karmar.conf.js

我得到了同样的错误,因为该项目使用巴别塔6,我忘了添加babelrc文件。 只是分享,如果这可能有所帮助。

在我的情况下,这个消息实际上是非常具有描述性的:我忘了在我的Jasmine中添加一个适配器到configuration文件中。 从而:

 module.exports = function(config) { config.set({ browsers: ['Chrome'], singleRun: true, frameworks: ['jasmine'], files: [ // ... files ... ], // other configs }); }; 

您需要configuration您的“my.conf.js”文件,因为它包含用于testing代码的所有信息。

所有你需要写的是这样的:

configuration文件可以使用karma init生成:

 $ karma init my.conf.js 

你想使用哪个testing框架? 按标签列出可能的选项。 进入移动到下一个问题。

茉莉

你想使用Require.js吗? 这将添加Require.js插件。 按标签列出可能的选项。 进入移动到下一个问题。

没有

你想自动捕获浏览器? 按标签列出可能的选项。 input空string移动到下一个问题。

你的源文件和testing文件的位置是什么? 你可以使用全局模式,例如。 “js / *。js”或“test / ** / * Spec.js”。 按Enter键移至下一个问题。

* .js test / ** / *。js

是否应排除以前模式中包含的任何文件? 你可以使用全局模式,例如。 “** / *。SWP”。

按Enter键移至下一个问题。

你想要噶看所有的文件,并在变化上运行testing? 按标签列出可能的选项。

在“/Users/vojta/Code/karma/my.conf.js”生成configuration文件。

在我的情况下,我错误地将commonjs预处理程序应用于karma-*模块,并且来自karma-chromekarma-firefoxadapter.js以这种方式被破坏。

不幸的是,这是一个非常普遍的错误。

我必须补充说,在我的情况下,业力给了我错误,因为我有一个父文件夹的名称中的[方括号]。

Tt抱怨可能是茉莉花或摩卡的适配器。 要么是适配器丢失,要么是没有正确设置,要么是过时的或错误版本的适配器。

在我的情况下,我有一个旧版本的摩卡2.5.3,这是不符合业力1+。 我更新摩卡依赖于最新版本可用3.2.0和解决的问题。

在处理大量模糊的错误时,我尝试设置basePath:'../',在纠正了其他错误(比如丢失了被描述为对象内容错误的逗号)之后,最后一次改回basePath:',得到了业力。 业力的错误陈述需要大量的工作。 实现这一点并不简单。

FWIW – 采购karma.conf.js的文件path在本地为我工作,但不在我的jenkins生成器。 我没有任何线索,为什么这是这种情况,但在jenkins它抛出这个错误,除非karma.conf.js文件是在根目录中,给出了karma命令。 我正在使用rails并通过rake任务运行js规范。 代码是低于这可能会有所帮助的一些。

https://gist.github.com/daino3/a39486ff8bfc1668e923

在我的情况下,问题是业力没有拿起任何文件。 修复它在karma.conf.js解决了这个问题。

同样的问题发生在我身上,这是由于一个过时的模块。

运行npm update解决了它。

就我而言,这完全不是因果报应! 我使用ES6 / babel从gulp运行业力,实际上有一个代码语法错误,由高于我的业力的babel错误标记:

错误[preprocessor.babel]:xxx.js:意外的标记(19:83)

我确定在我的src和业力再次高兴。

我遇到过同样的问题。 我的浏览器会打开,但在我的terminal上,它抛出了以下错误

 30 08 2017 11:19:28.272:INFO [Chrome 58.0.3029 (Linux 0.0.0)]: Connected `enter code here`on socket 5sSs6E5KmpUVRp6LAAAB with id 93886631 Chrome 58.0.3029 (Linux 0.0.0) ERRORSome of your tests did a full page reload! 

我检查了我的karma.conf.js文件。 在框架数组中,我包含了jasmine和requirejs。 但是我只安装了karma-jasmine.Removing requireJS并重新开始业务开始工作!

我也一直在努力。 我想到的是,这个错误是由于以下原因之一

  • 没有安装或定义testing适配器 ( karma.conf.js中的框架属性
  • 找不到karmaconfiguration(例如,在当前dir中没有karma.conf.js或在命令中指定没有configuration文件)

我的问题是,我的configuration文件被命名为karma.config.js而不是karma.conf.js

如果您已经安装了testing适配器,但仍然无法正常运行,请尝试运行karma init并通过指导configuration设置。