Tl;博士:
npx -p chai -p mocha mocha test.js
产生错误:找不到模块'chai'
问题:我不能在这里使用 chai 吗?因为......?......它不是可执行的?
语境:
我认为 npx 的一个很好的用途是将示例测试和代码一起编写在一个文件中并运行这些测试(似乎非常适合让人们接触 tdd 而不必过多担心周围的生态系统。)
这个 mocha 示例效果很好:
// addOne/test.js
const assert = require('assert')
function addOne(num){
return isNaN(num) ? 'not a number' : num+1
}
describe('addOne', function() {
it('returns a number increased by a value of 1' , function(){
assert.equal(addOne(0), 1)
assert.equal(addOne(-1), 0)
assert.equal(addOne(.1), 1.1)
})
it('returns the message "not a number" if given a non-number value', function(){
assert.equal(addOne('foo'), 'not a number')
assert.equal(addOne(function(){return 2}), 'not a number')
})
})
(在根目录 addOne run npx mocha test.js
)
但是,如果我想使用期望库,例如 chai 的“期望”,该怎么办?
var chai = require('chai')
var expect = chai.expect
< function >
describe('addOne', function() {
it('returns a number increased by a value of 1' , function(){
expect(addOne(0)).to.equal(1)
< etc >
知道我可以使用 npx 安装多个软件包,我尝试过运行
npx -p chai -p mocha mocha test.js
但得到: Error: Cannot find module 'chai'
我是否达到了 npx 的限制?您提供的所有软件包都必须是可执行的吗?