首页 > 解决方案 > AUTOTOOLS:使用我自己的测试套件而不是默认的

问题描述

我制作了一个 python 测试套件来测试我的项目。我在Makefile.am变量中添加了:

TESTS = ./launcher.sh

launcher.sh 包含:tests/testsuite.py

当我这样做时./launcher.sh,我的测试套件会正确执行。但是,当我这样做时make check,我得到以下输出:

PASS: launcher.sh
============================================================================
Testsuite summary for spider 1.0
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

如何隐藏默认输出并使用我的测试套件的输出?

标签: testingbinaryoutputautotoolstest-suite

解决方案


Automake 手册包含一整章关于测试的内容,这将有助于理解 Automake 的测试套件支持的上下文。此外,重要的是要了解使用 Automake 为您生成 makefile 所达成的部分交易是接受对生成的构建系统的形式和行为的一些限制。

如何隐藏默认输出并使用我的测试套件的输出?

据我所知,您无法隐藏 的默认输出make check,但可以将测试程序的输出发送到make的标准输出,而不是重定向到文件。最简单的方法是通过打开 Automake 的选项来启用串行测试工具。这通常通过你的宏serial-tests的参数来表达:AM_INIT_AUTOMAKEconfigure.ac

AM_INIT_AUTOMAKE([serial-tests])

另请注意,不必将您的内容包装tests/testsuite.py在 shell 脚本中。只需确保它是可执行的(听起来你已经完成了),并在TESTS变量的值中直接命名它,包括相对路径。


推荐阅读