小编and*_*ier的帖子

如何在运行单元测试时抑制来自node.js应用程序的应用程序日志消息?

虽然单元测试使用摩卡和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)

unit-testing mocha.js node.js

54
推荐指数
3
解决办法
3万
查看次数

如何使用Karma + angular添加调试日志消息以及如何禁用它们?

当我用Karma运行角度单元测试时,输出包含:

  • Karma记者的输出(例如'SUCCESS Module X做到了这一点')
  • 单元测试日志消息(通过console.log记录)

卡玛输出并没有包含:

  • 应用程序日志消息(通过$ log记录) - 仅当我通过console.log而不是$ log登录时

我可以选择记录"强度"吗?

我想区分:

默认模式:仅显示Karma报告输出,但禁止显示所有应用程序日志消息或单元测试日志消息.

单元测试调试模式:显示Karma报告输出以及所有日志消息(应用程序日志消息以及单元测试日志消息).

是否可以以某种方式记录单元测试消息,以便可以轻松地"切换"打开和关闭,以选择上述用例之一(默认模式与单元测试调试模式)?

我的"想法"会是这样的:

默认模式:

karma --log-level=none
Run Code Online (Sandbox Code Playgroud)

单元测试调试模式:

karma --log-level=debug
Run Code Online (Sandbox Code Playgroud)

这可能吗?

logging unit-testing angularjs karma-runner

11
推荐指数
1
解决办法
6429
查看次数

Vue + Webpack:从打包中排除 config.js 工作,但它不加载

我想要的是:

在我的 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)

config webpack vue.js

5
推荐指数
1
解决办法
1050
查看次数