函数

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 起可用

返回值

类型: int

成功时为 0,失败时为 1(假设它根本不返回),如果所有测试都被跳过或标记为不完整,则为 0 或 77。