我有一个用C编写的程序,使用automake/autoconf构建,有两个测试套件。一个是单元测试套件,也是用C编写的;另一个是端到端的,并且(目前)是用Python编写的。我希望“makecheck”总是运行单元测试,并且只有在安装了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
由配置脚本使用
这在Unix上可以正常工作,但是会出现“没有规则可制定”的错误测试仪.py.exe“在窗户上。另外,复制和替换技术可以正确地获得#!
行,这意味着我不能将测试套件分解成多个模块。在
有更好的方法吗?在
您必须将
_SOURCES
仅用于编译的内容,因此它是一个添加$(EXEEXT)
的原因。试试这个:你有什么理由不直接通过
^{pr2}$configure.ac
进行替换?在这将使用
config.status
和自动生成重建规则重新生成脚本。在编辑1:
如果您真正想做的是作为
make check
的一部分运行python tester脚本,我会这样做:{{{{cd6}的另一部分可以定义为的外部
相反,您可能更喜欢这样写:
参见汽车制造手册中的extending。在
相关问题 更多 >
编程相关推荐