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

问题描述 投票:83回答:25

我正在尝试向我的项目之一添加一些单元测试。

到目前为止,我已经安装并配置了业力,并且已经安装了茉莉花。我的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-runner karma-jasmine
25个回答
70
投票

看来这是一个非常普遍的错误,但是就我而言,问题是我没有从正确的文件夹运行karma start,或者在更改配置后没有重新启动它。

我将保留此问题,希望它可以成为遇到此错误消息的其他人的资源。


2
投票

就我而言,该消息实际上非常具有描述性:我忘记将适配器(以Jasmine为例)添加到配置文件中。因此:

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

2
投票

您需要配置“ 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”处生成的配置文件。


1
投票

在我的情况下,我错误地将commonjs预处理程序应用于karma-*模块,并且adapter.jskarma-chrome中的karma-firefox被破坏了。

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


1
投票

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


1
投票

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

就我而言,我有一个旧版本的Mocha 2.5.3,它与业力1+不兼容。我将Mocha依赖项更新到最新版本

可用的3.2.0,问题已解决。

1
投票

[在处理大量模糊描述的错误时,我尝试设置basePath:'../',在更正了其他错误(例如,缺少描述为对象内容错误的逗号之后)后,最后一次更改回到basePath:”,工作。因果报应的错误声明需要大量工作。要实现它并不简单。


0
投票

FWIW-采购karma.conf.js的文件路径在本地为我工作,但在我的jenkins构建器上不起作用。我零线索为什么会这样,但是在jenkins上,除非karma.conf.js文件位于发出karma命令的根目录中,否则它将引发此错误。我正在使用Rails并通过rake任务运行js规范。下面的代码可能对某些人有所帮助。


0
投票

在我的案例中,问题在于业力没有拾取任何文件。在karma.conf.js中修复它可以解决此问题。


0
投票

我发生了同样的问题,这是由于模块已过时。


0
投票

就我而言,这根本与业力无关!我使用ES6 / babel从gulp运行业力,实际上是一个代码语法错误,由我业力上方的babel错误标记:


25
投票

如果您将业力配置文件命名为karma.conf.js,则只需键入karma start

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

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


0
投票

我有同样的问题。我的浏览器将打开,但是在我的终端上它抛出以下错误


0
投票

我也一直在为此苦苦挣扎。我想到的是,发生此错误是因为以下原因之一


0
投票

就我而言,配置文件名不同


0
投票

运行启动业力时,必须指定karma.config.js的目录。


0
投票

我收到此错误是因为我两次都需要相同的依赖关系!


0
投票

我在karma.conf.js中配置了错误的'文件'


13
投票

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


7
投票

就我而言,我必须将文件重命名为karma.conf.js,然后进行karma启动


6
投票

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!

6
投票

我没有从karma.conf.js所在的路径运行karma start命令。我切换到该文件夹​​并运行相同的命令。全部


4
投票

我在Angular.js代码库上运行规范时遇到了这个问题。我必须运行npm install karma-jasmine -g才能运行此功能。


3
投票

如果输入“ karma start”,则当前文件夹中必须具有karma.conf.js文件。或只是“业力开始/path/karma.conf.js”

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


2
投票

我遇到相同的错误,因为该项目使用的是Babel 6,但是我忘记添加babelrc文件。只是分享以防万一。

© www.soinside.com 2019 - 2024. All rights reserved.