0

我正在使用 Appveyor 在 Windows 上运行 Node 测试,并且仅在一个环境中遇到问题:带有 Node 0.10 的 Powershell。

在其他节点版本中,我得到如下输出:

npm test # PowerShell
#...

TAP version 13
# find rc file in third searched dir, with a package.json lacking prop
ok 1 should be equal
ok 2 first dir: checked /a/b/c/d/e/f/package.json
ok 3 first dir: checked /a/b/c/d/e/f/.foorc
# ...

1..72
# tests 72
# pass  72

# ok

npm test
# ...

但是在节点 0.10.40 和 npm 1.4.28 中,我得到了这个:

npm test # PowerShell
#...

TAP version 13
# find rc file in third searched dir, with a package.json lacking prop
ok 1 should be equal
ok 2 first dir: checked /a/b/c/d/e/f/package.json
ok 3 first dir: checked /a/b/c/d/e/f/.foorc
# ...

1..72
# tests 72
# pass  72

# ok

npm : 
At line:1 char:1
+ npm test # PowerShell
+ ~~~~~~~~
    + CategoryInfo          : NotSpecified: (:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

C:\projects\cosmiconfig\test\a\b\foo.config.js:1
quire, module, __filename, __dirname) { module.exports = { found: true: false,
                                                                      ^

Command executed with exception: C:\projects\cosmiconfig\test\a\b\foo.config.js:1
quire, module, __filename, __dirname) { module.exports = { found: true: false,
                                                                      ^

它抱怨的那行代码是故意的错误——测试的一部分——(我相信)被捕获和处理,测试是为了确保错误发生。

为什么只有 Windows 上的 Node 0.10(通过 Travis 在 Unix 上不会发生)会有这个问题?我需要做什么来修复它?

(如果您需要其他详细信息进行故障排除,请告诉我:我对出了什么问题知之甚少,不知道要分享什么。)

4

1 回答 1

0

看起来旧版本的 npm 向 stderr 写入了一些内容,尽管它们实际上并没有以错误代码退出进程。正如@PetSerAl 所说,发生这种情况时,Powershell 会出错,但其他终端不会。解决方案似乎只是不在 Powershell 中运行这些测试。

参看。http://help.appveyor.com/discussions/problems/2347-npm-275prefer-global-warning-causes-failure-command-executed-with-exceptionhttps://github.com/npm/npm/issues/ 8517

于 2015-11-15T13:46:41.707 回答