在Jenkins中模拟Node.js的TTY

时间:2014-12-23 12:12:54

标签: node.js unit-testing jenkins tty

我编写了一个Node.js控制台脚本,用于为其输出着色,但前提是输出是TTY。如果没有,输出不会着色。

现在我有一个测试,检查输出是否着色(我想确保添加了正确的ANSI代码)。这在使用Grunt手动运行单元测试时效果很好,但在使用Jenkins自动运行单元测试时失败。

原因很明显:Jenkins没有为我的测试提供TTY。

现在我有两个选择:

  • 调整测试以检查TTY是否可用,并根据对该事物或其他事项的检查。
  • 为Jenkins内的测试提供TTY。

我不喜欢第一个选项,因为这意味着我的测试取决于运行它们的环境。

我需要做些什么才能做第二件事?

1 个答案:

答案 0 :(得分:1)

对于你的测试如何使用sinon和重新连接来存根tty.isatty()所以它返回true?你也可以用这种方式测试真假案例。