2017-08-26 52 views
0

我使用量角器来测试我的web应用程序。这需要两个程序运行:沉默嘈杂的npm脚本

  • webdriver-manager start运行Selenium服务器。
  • protractor conf.js启动Protractor,然后与Selenium服务器通信以控制浏览器。

因为这很烦人运行在单独的窗口这些命令,我​​有我的package.json如下:

"scripts": { 
    "webdriver-start": "webdriver-manager start", 
    "protractor": "protractor conf.js", 
    "pretest": "webdriver-manager update", 
    "test": "npm-run-all -p -r webdriver-start protractor" 
} 

这让我做的一切只npm run test

不幸的是,Selenium输出一个lot噪音到控制台,这使得无法看到格式良好的茉莉花记者输出。

我会使用webdriver-manager start --quiet来限制控制台输出,但是there is a bug导致我的测试挂起。

为了避免这种情况,我想

  • 运行npm run test --silent,但与故宫本身的日志,没有脚本的日志,这只是交易(同样适用于附加|| true到脚本)
  • 使用webdriver-manager start --detach,但这仍然记录在同一控制台中的东西

是否有任何解决方法来隐藏单个npm脚本的输出?

回答

0

这些脚本实质上是shell命令,因此您可以使用>将输出从控制台重定向。

由于我使用的是Windows,我从this answer改编命令通过Anders Lindahl为webdriver的输出和错误重定向到NUL

"scripts": { 
    "webdriver-start": "webdriver-manager start > NUL 2> NUL", 
    "protractor": "protractor conf.js", 
    "pretest": "webdriver-manager update", 
    "test": "npm-run-all -p -r webdriver-start protractor" 
} 

在其它平台上,你可能会redirect to /dev/null代替。

如果您需要登录了这一切,而不是摆脱它,你可以做以下把它放在一个日志文件:

"scripts": { 
    "webdriver-start": "webdriver-manager start > out.log 2> err.log", 
    "protractor": "protractor conf.js", 
    "pretest": "webdriver-manager update", 
    "test": "npm-run-all -p -r webdriver-start protractor" 
}