在使用mocha和supertest对我的node.js应用程序(基本上是REST后端)进行单元测试时,我只需要屏幕上特定于测试的消息,但标准输出也被应用程序日志消息所困扰。
我从以下单元测试开始:
mocha -R spec .
…并获得此输出(这是 不 应该的):
[App] Listening on port 3000 ...
[App] Starting app, hooray!
Project API
GET /projects
[App] entering "projects" module ...
√ should return an array of projects (317ms)
我用[App]标记了应用程序日志消息。我 真正想要的 是单元测试的输出:
Project API
GET /projects
√ should return an array of projects (317ms)
我如何抑制应用程序插入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 {
// while testing, log only to file, leaving stdout free for unit test status messages
logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({ filename: 'foo.log' })
]
});
}
…并设置env变量,每个单元测试文件均以:
process.env.NODE_ENV = 'test';
在您的app.js中:
if (process.env.NODE_ENV !== 'test') {
app.use(express.logger());
}
在每个mocha文件的顶部:
process.env.NODE_ENV = 'test';
更新:
我们在导入html" target="_blank">代码中使用此功能:
function logExceptOnTest(string) {
if (process.env.NODE_ENV !== 'test') {
console.log(string);
}
}
然后,将所有内容替换console.log('it worked')
为logExceptOnTest('it worked')
。基本技巧是将环境变量用作想要的日志记录级别的全局标志。
当我尝试运行此代码时,spring-boot应用程序会运行,但junit测试用例永远不会运行。但是如果我删除“@SpringBootTest(webEnvironment=webEnvironment.RANDOM_PORT)”,那么Junit测试会运行,但我的spring-boot应用程序不会运行。在我早期的项目中,这从来不是一个问题。
本章讨论使用 JUnit,Mockito,MRUnit 和 HBaseTestingUtility 对 HBase 应用程序进行单元测试。大部分信息来自关于测试 HBase 应用程序的社区博客文章。有关 HBase 本身的单元测试的信息,请参阅 hbase.tests 。 175. JUnit HBase 使用 JUnit 进行单元测试 此示例将单元测试添加到以下示例类: public class
2020-02-27 16:36:12.159 313 59-31359/com.gic.spade.android e/AndroidRuntime:致命异常:main process:com.gic.spade.android,PID:31359 java.lang.runtimeException:无法创建应用程序com.gic.spade.android.application.colle
使用 GWT 更轻松地测试异步应用程序 您可能从编写 Ajax 应用程序中获得了极大乐趣,但是对它们执行单元测试却着实让人头痛。 在本文中,Andrew Glover 着手解决 Ajax 的弱点(其中之一),即应对异步 Web 应用程序执行单元测试的固有挑战。 幸运的是,他发现在 Google Web Toolkit 的帮助下,解决这个特殊的代码质量问题要比预想的容易。 Ajax 在近期无疑是 W
问题内容: 如何调试Node.js服务器应用程序? 现在,我主要使用带有以下打印语句的 警报调试 : 必须有更好的调试方法。我知道GoogleChrome浏览器有一个命令行调试器。该调试器也可用于Node.js吗? 问题答案: 节点检查器可以节省一天!从支持WebSocket的任何浏览器中使用它。断点,事件探查器,实时编码等,这真的很棒。 通过以下方式安装: 然后运行:
我尝试在intellij中的play framework java starter示例上运行单元测试,但似乎不起作用。 我下载了该项目,并通过SBT导入将其导入到intellij中。 当我尝试从intellij运行测试时,我得到了“未找到类:”UnitTest“空测试套件” 编辑(在重新定位到@HCE) 我将intellij升级到最新版本:2018.3.2(找不到2018.3.5),但我仍然遇到类