摩卡咖啡需要做。找不到适用于Windows的make.exe
嘿,我觉得你;)我是一个团队的成员,忙于使用node建立一个新的创业公司。我们的两个开发人员在OSX上,一个在Linux上。我在Windows上。
我下载并使用了GNU的“ Windows版”,现在可以很高兴地制作我们的安装和测试套件。
另外,我强烈建议您使用PowerShell-它有一堆别名为UNIX友好命令的命令(例如Get-ChildItem-> ls)。这使我们的一些脚本无需更改即可在UNIX或Windows上运行。
因此,对于您的问题:
尝试使用以下命令替换上面的makefile:
# Detect if we're running Windows
ifdef SystemRoot
# If so, set the file & folder deletion commands:
FixPath = $(subst /,\,$1)
else
# Otherwise, assume we're running *N*X:
FixPath = $1
endif
NODE_MODULES := ./node_modules/.bin/
test:
$(call FixPath, NODE_MODULES)mocha -u tdd -R spec
.PHONY: test
注意:对于Makefile,目标中的任务必须使用制表符而不是空格缩进!去搞清楚!!
我从这篇文章中偷走了FixPath例程(感谢Paul :))。如果在Windows上运行,它将用\替换字符串的/。
在Windows上,make的问题之一是它为了执行每个任务而被外壳化到NT的命令外壳(通过CreateProcess)。这意味着在执行makefile文件时,Powershell否则会处理的所有N个 X-ism(例如ls,cat等)将不起作用。因此,建议用可覆盖的别名替换内联命令,对于NT,您可以将其设置为一个命令,对于 N X ,可以将其设置为另一个命令。
也许我会分叉Gnu Make,看看在执行命令而不是NT命令行时是否可以将它封装到Powershell中。这也将消除对上面的FixPaths的需要;)
如果遇到问题,请ping我;)
Mocha(Node.js的测试框架)使用make。
为了我的生命,我找不到适用于Windows的兼容make.exe。
在Mac上,一切正常。
我试过使用VS的nmake.exe和我发现从Unix移植的make.exe。但是它们都是不兼容的。
不能只是我
这是makefile:
test:
@./node_modules/.bin/mocha -u tdd -R spec
.PHONY: test
在锅上做面包。在PHONY中,即使我将其删除,它也永远不会运行mocha命令(或者至少没有输出)。
./node_modules/.bin/mocha -u -tdd -R spec
直接运行会给我我的测试报告:
first suite -
? ten should always be equal to 9+1
? zero is less all positive numbers
? There is no i in team
? 3 tests complete (8ms)
编辑3/25/12
- 最后,解决此问题的最简单方法是使用Cygwin,并确保已安装Cygwin的开发人员软件包。在PowerShell中,我做了
Set-Alias make "c:\dev\utils\cygwin\bin\make.exe"
,现在make test
可以在标准Mocha Makefile中使用。