2017-05-30 42 views
0

我我的package.json多个脚本我有使用通配符来运行NPM运行测试

"scripts": { 
    "test": "node tests/*-test.js" 
} 

而且我在tests文件夹中,我可以通过运行ls tests/*-test.js验证a-test.jsb-test.js

但是,npm run test只执行a-test.js。我怎样才能执行所有*-test.js脚本?明确地列出它们不是一种选择,因为我将来会有超过2个的运行。

+0

你尝试过这个节点测试/ * - 壳test.js命令? –

回答

0

您可以使用任务管理器,如gruntgulp,或者一个简单的脚本执行这些脚本:

test.js:

require('./test/a-test.js') 
require('./test/b-test.js') 

的package.json

"scripts": { 
    "test": "node test.js" 
} 

您也可以使用包含全部模块为您自动执行这些模块https://www.npmjs.com/package/include-all

示例使用INCLUDEALL:

const path = require('path'); 
    const includeAll = require('include-all'); 

    const controller = includeAll({ 
     dirname: path.join(__dirname, 'test'), 
     filter: /(.+test)\.js$/, 
    }); 
+0

运行test.js不起作用:'错误:找不到模块'a-test.js''是否需要执行另一个步骤?我把它们都放在'test'文件夹中,并从需求中删除了“test /”。 我也做了includeAll脚本,它不运行任何东西!如果这很重要,我想把这一切都放在测试文件夹下。 – swagrov

+0

对不起,它是'require('./ test/a-test.js')',正在更新 –

+0

它似乎在压制来自我的一个使用API​​-easy.js的测试的输出。如果我自己运行测试,我会得到一个检查标记和失败的列表。但使用你的test.js答案,它会打印出console.log语句,但没有别的。任何想法为什么? – swagrov

相关问题