【发布时间】:2011-07-29 20:39:15
【问题描述】:
我有一个用 C 语言编写的程序,使用 automake/autoconf 构建,并且有两个测试套件。一个是同样用 C 编写的单元测试套件;另一个是端到端的,并且(当前)用 Python 编写。我希望“make check”始终运行单元测试,并且只有在安装了 Python 时才进行端到端测试。这就是我现在拥有的:
TESTS = unittests
if HAVE_PYTHON
TESTS += tester.py
tester_py_SOURCES = src/test/tester.py.in
tester.py: src/test/tester.py.in Makefile
$(SED) -e 's,[@]PYTHON[@],$(PYTHON),' < $< > $@
chmod +x $@
endif
HAVE_PYTHON 由配置脚本设置
AM_PATH_PYTHON([2.6],, [:])
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != ":"])
这在 Unix 上可以正常工作,但在 Windows 上会出现“没有规则可以制作 tester.py.exe”。此外,正确使用 #! 行的复制和替换技术意味着我无法将测试套件分解为多个模块。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: python portability automake