虽然单元测试使用摩卡和supertest我的node.js应用(这基本上是一个REST后端),我只需要在屏幕上的特定的测试消息,但stdout是也堆满了应用程序日志消息.
我开始进行单元测试:
mocha -R spec .
Run Code Online (Sandbox Code Playgroud)
...并获得此输出(这是不应该的):
[App] Listening on port 3000 ...
[App] Starting app, hooray!
Project API
GET /projects
[App] entering "projects" module ...
? should return an array of projects (317ms)
Run Code Online (Sandbox Code Playgroud)
我用[App]标记了应用程序日志消息.我真正想要的是单元测试的输出:
Project API
GET /projects
? should return an array of projects (317ms)
Run Code Online (Sandbox Code Playgroud)
如何通过散布在Mocha报告输出中的应用程序来抑制console.log/warn/error输出?
解:
按照dankohn的方法,我结束了这样,这解决了我的问题(使用winston进行日志记录):
(在节点的"主"服务器文件中,server.js :)
if (process.env.NODE_ENV !== 'test') {
logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.File)({ filename: 'foo.log' })
]
});
} else …Run Code Online (Sandbox Code Playgroud) 当我用Karma运行角度单元测试时,输出包含:
卡玛输出并没有包含:
我可以选择记录"强度"吗?
我想区分:
默认模式:仅显示Karma报告输出,但禁止显示所有应用程序日志消息或单元测试日志消息.
单元测试调试模式:显示Karma报告输出以及所有日志消息(应用程序日志消息以及单元测试日志消息).
是否可以以某种方式记录单元测试消息,以便可以轻松地"切换"打开和关闭,以选择上述用例之一(默认模式与单元测试调试模式)?
我的"想法"会是这样的:
默认模式:
karma --log-level=none
Run Code Online (Sandbox Code Playgroud)
单元测试调试模式:
karma --log-level=debug
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我想要的是:
在我的 Vue 项目中,在执行 a 时vue run build,所有内容都打包(webpack)到dist目录中。
我可以将整个包部署到测试服务器,但由于测试服务器需要另一组凭据(用于数据库等),因此config.js每个环境中的一个文件,即必须不同。
我的策略:
config.js从被打包到 app.12314...js 包中排除config.js为作为文件原封不动地发出(通过 webpack 的file-loader)我做了什么:
在需要配置数据的 Vue 组件文件中,通过以下方式包含 config:
<script>
import config from '@/config/config.js';
</script>
Run Code Online (Sandbox Code Playgroud)
我创建了一个vue.config.js文件来修改默认的 webpack 设置,如下所示:
const path = require("path");
// vue.config.js
module.exports = {
publicPath: '/',
configureWebpack: {
module: {
rules: [
{
test: /config.*config\.js$/,
use: [
{
// exclude config file from being packed. The config file should simply reside as …Run Code Online (Sandbox Code Playgroud) unit-testing ×2
angularjs ×1
config ×1
karma-runner ×1
logging ×1
mocha.js ×1
node.js ×1
vue.js ×1
webpack ×1