Use Blanket.js instead of jscover

在遇到 Blanket.js 之前,我一直使用这 jscover 来做代码覆盖率测试。

jscover

使用 jscover ,好处是不需要编译,直接使用 java 版本;缺点是需要 java 环境依赖。 通过 Makefile 来驱动整个测试执行,如 urllib/Makefile

TESTS = test/*.test.js
REPORTER = spec
TIMEOUT = 20000
JSCOVERAGE = ./node_modules/jscover/bin/jscover

test:
  @NODE_ENV=test ./node_modules/mocha/bin/mocha \
    --reporter $(REPORTER) \
    --timeout $(TIMEOUT) \
    $(TESTS)

test-cov:
  @rm -rf ./lib-cov
  @$(JSCOVERAGE) lib lib-cov
  @URLLIB_COV=1 $(MAKE) test REPORTER=dot
  @URLLIB_COV=1 $(MAKE) test REPORTER=html-cov > coverage.html

.PHONY: test test-cov

执行代码覆盖率测试:

$ make test-cov

打开 coverage.html 就能看到覆盖情况了。

Blanket.js

某天在github上看到 Blanket.js ,算是意外收获,终于能摆脱代码转换依赖了。

Blanket.js is an easy to install, easy to configure, and easy to use JavaScript code coverage library that works both in-browser and with nodejs.

使用上 Blanket.js 以后,不再需要将代码转换落地成文件,也不需要java依赖。

还是以 urllib/Makefile 为例:

TESTS = test/*.test.js
REPORTER = spec
TIMEOUT = 20000
MOCHA_OPTS =

test:
  @NODE_ENV=test ./node_modules/mocha/bin/mocha \
    --reporter $(REPORTER) \
    --timeout $(TIMEOUT) \
    $(MOCHA_OPTS) \
    $(TESTS)

test-cov:
  @URLLIB_COV=1 $(MAKE) test MOCHA_OPTS='--require blanket' REPORTER=dot
  @URLLIB_COV=1 $(MAKE) test MOCHA_OPTS='--require blanket' REPORTER=html-cov > coverage.html

.PHONY: test test-cov

参考 Getting Started Guide (nodejs version)

package.json 添加上 blanket 的代码匹配模式,确定你需要对那个路径下的代码进行转换。

"scripts": {
  "test": "make test",
  "blanket": { "pattern": "urllib/lib" }
},

执行命令还是保持一致:

$ make test-cov

coverage.html 跟使用 jscover 的报告结果一致,缺没有了文件生成,也不再需要去服务器上安装java了。

Project

对于非lib类项目,如普通的应用项目,进行代码覆盖率测试,同样可以使用 Blanket.js 很好地做到。

urlrar 为例:

Markfile

TESTS = test/*.test.js
REPORTER = spec
TIMEOUT = 10000
MOCHA_OPTS =

install:
  @npm install

test: install
  @NODE_ENV=test ./node_modules/mocha/bin/mocha \
    --reporter $(REPORTER) \
    --timeout $(TIMEOUT) \
    $(MOCHA_OPTS) \
    $(TESTS)

test-cov: 
  @URLRAR_COV=1 $(MAKE) test MOCHA_OPTS='--require blanket' REPORTER=html-cov > coverage.html
  @URLRAR_COV=1 $(MAKE) test MOCHA_OPTS='--require blanket' REPORTER=travis-cov

test-all: test test-cov

.PHONY: test-cov test test-all

package.json

"devDependencies": {
    "travis-cov": "*",
    "blanket": "*",
    // ...
  },
  "scripts": {
    "test": "make test-all",
    "blanket": { 
      "pattern": "//^((?!(node_modules|test)).)*$/",
      "data-cover-flags": {
        "debug": false
      }
    },
    "travis-cov": {
      "threshold": 93
    }
  },
$ npm test 

运行结果: 包含测试结果和代码覆盖率.

1
1

有爱

^_^ 希望本文对你有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用C语言解决下列问题:Kirill wants to weave the very beautiful blanket consisting of n×m of the same size square patches of some colors. He matched some non-negative integer to each color. Thus, in our problem, the blanket can be considered a B matrix of size n×m consisting of non-negative integers. Kirill considers that the blanket is very beautiful, if for each submatrix A of size 4×4 of the matrix B is true: A11⊕A12⊕A21⊕A22=A33⊕A34⊕A43⊕A44, A13⊕A14⊕A23⊕A24=A31⊕A32⊕A41⊕A42, where ⊕ means bitwise exclusive OR Kirill asks you to help her weave a very beautiful blanket, and as colorful as possible! He gives you two integers n and m . Your task is to generate a matrix B of size n×m , which corresponds to a very beautiful blanket and in which the number of different numbers maximized. Input The first line of input data contains one integer number t (1≤t≤1000 ) — the number of test cases. The single line of each test case contains two integers n and m (4≤n,m≤200) — the size of matrix B . It is guaranteed that the sum of n⋅m does not exceed 2⋅105 . Output For each test case, in first line output one integer cnt (1≤cnt≤n⋅m) — the maximum number of different numbers in the matrix. Then output the matrix B (0≤Bij<263) of size n×m . If there are several correct matrices, it is allowed to output any one. It can be shown that if there exists a matrix with an optimal number of distinct numbers, then there exists among suitable matrices such a B that (0≤Bij<263) .
03-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值