我的makefile:
.PHONY: test-unit test-functional mocha
test: test-unit test-functional
test-unit: SUITE = "unit"
test-unit: mocha
@echo "unit"
test-functional: SUITE = "functional"
test-functional: mocha
@echo "functional"
mocha:
@echo ===== RUNNING TESTS: $(SUITE) =====
我希望使用这个makefile来运行我的两个测试套件,而无需复制运行套件所需的代码(抽象到mocha
任务中)。但是,Make很聪明,并且意识到mocha
已经运行test-functional
并且没有再次运行它。
make test
:
===== RUNNING TESTS: unit =====
unit
functional
有没有更好的方法来实现这个或许是为了实现类似的抽象,或者每次都需要运行标记mocha
?
答案 0 :(得分:2)
使用Canned Recipe作为mocha
任务的正文,并将其粘贴在两个测试任务中。
而不是
mocha:
@echo ===== RUNNING TESTS: $(SUITE) =====
test: mocha
使用
define mocha
@echo ===== RUNNING TESTS: $(SUITE) =====
endef
test:
$(mocha)
....
define mocha =
(或:=
等)我认为make 4.0+。