是否可以在'make install'之前执行'make check'并在检查失败时中止安装?如果在自动工具中执行'make install',自动运行'make check'
行为应该是这样的:
- 用户运行 'make install的'
- '做检查' 运行。
- 如果检查失败,则不执行安装。否则会执行安装。
编辑:
我把它通过覆盖在顶层Makefile.am这样的安装工作规则:
install: check install-recursive
但我宁愿不覆盖的解决方案安装目标。
是否可以在'make install'之前执行'make check'并在检查失败时中止安装?如果在自动工具中执行'make install',自动运行'make check'
行为应该是这样的:
编辑:
我把它通过覆盖在顶层Makefile.am这样的安装工作规则:
install: check install-recursive
但我宁愿不覆盖的解决方案安装目标。
您可以挂接到使用install-exec-local
或install-data-local
目标的安装过程:
install-exec-local: check
如果我使用exec-local,则测试在安装过程中间的某处运行。 – 2012-03-06 14:22:18
然后唯一的方法是覆盖安装目标。 – ptomato 2012-03-06 14:50:48
这是可能的,但你为什么要这么做?如果用户想要快速安装,或者出于任何原因不想运行测试套件,则应该允许用户做出该选择。如果你想在写入一个图章文件的检查目标上挂钩,然后在'make install'期间发出一个警告来表明测试套件还没有运行,那很好,但你不应该选择来自用户。 – 2012-03-06 13:53:13
@WilliamPursell,我非常同意。如果“角落案例”测试失败或用户不关心的功能测试失败,用户将无法安装。我甚至有'make check'失败,仅仅是因为像sed这样的工具如何在不同类型的Unix上安排(正确的)测试输出的细微差别。 – ldav1s 2012-03-07 00:44:14