stdout is not a tty. Using bash for node + tape + tap-spec
Just to add my case, I was facing similar issue. Neither solution of using winpty did help, thus I used different hint on using node.exe
instead of node
when running a script (from Git bash in my case).
not working:
node myscript.js < some-input.txt > some-output.txt
working:
node.exe myscript.js < some-input.txt > some-output.txt
Diagnose :
Theres nothing wrong with the code, I get the following output : (OS : ArchLinux)
add: two numbers add correctly
✔ should be equal
total: 1
passing: 1
duration: 14ms
Its probably a problem with Windows 7 Git Bash Shell
I read somewhere : sending output through a pipe is broken with Git Bash
To discard it run the following command :
node -p -e "Boolean(process.stdout.isTTY)"
For it to work you need the following output : true
Solution (for Windows):
$ node -p -e "Boolean(process.stdout.isTTY)"
false
Using the winpty tool, it creates a hidden console and marshals I/O between it and Cygwin/GitBashshell emulated pty :
$ winpty node -p -e "Boolean(process.stdout.isTTY)"
true
READ MORE : Node.js doesn't run as tty on windows / cygwin Issue#3006