当前位置: 首页 > 面试题库 >

摩卡+伊斯坦布尔+通天塔

邬宏扬
2023-03-14
问题内容

在使用Mocha和babel编译器运行istanbul时遇到一些问题。

我所有的测试都运行良好,但是在完成所有测试后,它向我显示以下消息:

No coverage information was collected, exit without writing coverage information

而且它没有产生任何覆盖率报告。

我正在运行的命令是:

NODE_ENV=test istanbul cover _mocha -- --require babel-core/register --recursive

该项目托管在github中:https : //github.com/weslleyaraujo/react-flux-
puzzle/tree/feat/unit-tests-24

有什么想法吗?


问题答案:

使用Babel 6.x,假设我们有file test/pad.spec.js

import pad from '../src/assets/js/helpers/pad';
import assert from 'assert';

describe('pad', () => {
  it('should pad a string', () => {
    assert.equal(pad('foo', 4), '0foo');
  });
});

安装一堆废话:

$ npm install babel-istanbul babel-cli babel-preset-es2015 mocha

创建一个.babelrc

{
  "presets": ["es2015"]
}

运行测试:

$ node_modules/.bin/babel-node node_modules/.bin/babel-istanbul cover \   
node_modules/.bin/_mocha -- test/pad.spec.js


  pad
    ✓ should pad a string


  1 passing (8ms)

=============================================================================
Writing coverage object [/Volumes/alien/projects/forked/react-flux-puzzle/coverage/coverage.json]
Writing coverage reports at [/Volumes/alien/projects/forked/react-flux-puzzle/coverage]
=============================================================================

=============================== Coverage summary ===============================
Statements   : 100% ( 4/4 )
Branches     : 66.67% ( 4/6 ), 1 ignored
Functions    : 100% ( 1/1 )
Lines        : 100% ( 3/3 )
================================================================================

更新 :我已经成功使用nyc(消耗istanbul)而不是istanbul/ babel-istanbul。这有点复杂。尝试一下:

安装内容(您可以删除babel-istanbulbabel-cli):

$ npm install babel-core babel-preset-es2015 mocha nyc

.babelrc如上创建。

执行此:

$ node_modules/.bin/nyc --require babel-core/register node_modules/.bin/mocha \ 
test/pad.spec.js

…应该会给您类似的结果。默认情况下,它将覆盖率信息放入.nyc-output/,并在控制台中显示漂亮的文本摘要。

注意:node_modules/.bin/将命令放在package.jsonscripts字段中时,可以从其中任何命令中删除。



 类似资料:
  • 现在我正在尝试生成覆盖范围。 我需要什么才能生成伊斯坦布尔或其他地方的覆盖范围?

  • 第三个问题:是否有任何方法来确定代码中哪些特定部分没有被覆盖?到目前为止,没有真正浏览这份报告,我基本上是猜测。

  • 我刚开始为摩卡使用伊斯坦布尔测试覆盖模块。当我查看报告时,一些代码被突出显示为黄色。我在文件里找不到这是什么意思?

  • 试图用茉莉花节点运行伊斯坦布尔 运行:节点C:\myproject\project 1\ " ( ^ \__filename测试没有收集覆盖信息,退出而不写入覆盖信息C:\myproject\project ect1\merg\__dirname\_compile: 1(函数(导出、要求、模块、jasmine-node.CMD、node_modules.bin){@IF EXIST"%~dp0\_

  • 土耳其政府于2015年9月29日宣布,土耳其将于2015年3月29日至2015年11月8日进入夏令时 但似乎是错误的时区(协调世界时02:00)伊斯坦布尔 2015年 夏令时于2015年3月29日凌晨2:00开始< br >夏令时于2015年10月25日凌晨3:00结束 微软何时发布热修复补丁?

  • 我试图用axios从VueJS到Laravel,这是我的API。 我得到了这个错误: