函数
GLibtest_run
自:2.16
声明 [src]
int
g_test_run (
void
)
说明 [src]
运行顶级套件下的所有测试。
可以使用 g_test_get_root()
获取顶级套件。
类似于 g_test_run_suite()
,要运行的测试用例会根据 g_test_init()
解析的测试路径参数(-p testpath
和 -s testpath
)进行筛选。 g_test_run_suite()
或 g_test_run()
只能在一个程序中调用一次。
通常,每个套件内的测试和子套件将按照定义它们的顺序运行。但是,请注意,在 GLib 2.36 之前,g_test_add_*
函数存在一个错误,导致它们创建了具有相同名称的多个套件,这意味着如果你按那个顺序创建了测试“/foo/simple”、“/bar/simple”和“/foo/using-bar”,它们将按那个顺序运行(因为 g_test_run()
将运行第一个“/foo”套件,然后运行“/bar”套件,然后运行第二个“/foo”套件)。从 2.36 开始,此错误得到修复,并且按该顺序添加测试将导致以下运行顺序:“/foo/simple”、“/foo/using-bar”、“/bar/simple”。如果这种新顺序不是最优的(因为它将更复杂的测试放在更简单的测试之前,从而难以确切找出出错的位置),你可以通过更改测试路径以按套件对测试进行分组的方式来修复它,从而得到所需的运行顺序。例如,“/simple/foo”、“/simple/bar”、“/complex/foo-using-bar”。
但是,你永远不应使测试的实际结果依赖于运行测试的顺序。如果你需要确保在给定的测试用例之前或之后运行某些特定代码,请使用 g_test_add()
,它允许你指定设置和清除函数。
如果所有测试都被跳过或标记为不完整(预期失败),并且生成 TAP 输出,则此函数将返回 0,否则返回 77(Automake 将其视为“跳过测试”)。
自 2.16 起可用