stdout is not a tty. Using bash for node + tape + tap-spec

前端 未结 4 813
梦毁少年i
梦毁少年i 2021-02-09 01:55

Was looking at a tape + tap video and tried to get it to work.
OS: Windows 7 Git Bash Shell

node main.js | ./node_modules/.bin/tap-spec

st

4条回答
  •  清酒与你
    2021-02-09 02:28

    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

提交回复
热议问题