如何在bazel中实现回归测试?
我有以下测试目标:如何在bazel中实现回归测试?,bazel,Bazel,我有以下测试目标: block_test ( name = "full_test", block = ":block_name" ... params = { "PARAM1" : 1, "PARAM2" : 2, "PARAM3" : 3 } ) 我有一个结构,它定义了每个参数的可能值: params_options = { "param1" : [1, 2, 34], "param2"
block_test (
name = "full_test",
block = ":block_name"
...
params = {
"PARAM1" : 1,
"PARAM2" : 2,
"PARAM3" : 3
}
)
我有一个结构,它定义了每个参数的可能值:
params_options = {
"param1" : [1, 2, 34],
"param2" : [43, 2 ,54],
"param3" : [3, 5, 6]
}
我希望有一个单一的目标,可以为每个可能的参数组合运行类似于block_test
的目标
我考虑通过创建一个宏来实现这一点,该宏将为每个可能的参数组合声明一个目标,最后是一个依赖于这些目标的测试目标
有没有更好的办法?可能有数千种组合,因此:
您可以使用列表理解为每组参数生成一个
block_测试
:
[block_test (
name = "full_test",
block = ":block_name"
...
params = p
) for p in [
{1, 2, 34},
{43, 2 ,54},
{3, 5, 6},
]]
您可以使用列表理解为每组参数生成一个
block_测试
:
[block_test (
name = "full_test",
block = ":block_name"
...
params = p
) for p in [
{1, 2, 34},
{43, 2 ,54},
{3, 5, 6},
]]
这和使用宏不一样吗?此外,生成的规则将有冲突的名称,并且我不会得到一个可以用来调用所有测试的单一目标。这两个问题都可以用稍微复杂一点的宏来解决,但这有点忽略了我的问题。这和使用宏不一样吗?此外,生成的规则将有冲突的名称,并且我不会得到一个可以用来调用所有测试的单一目标。这两个问题都可以用更复杂的宏来解决,但这有点忽略了我的问题。我刚刚找到了这个特性。这并不能解决我在没有宏的情况下创建所有测试的问题,但如果这是我的任务,它可以让我将测试分组并在单个目标下执行。我只是找到了这个功能。这并不能解决我在没有宏的情况下创建所有测试的问题,但是如果这是我的任务,它允许我将测试分组并在单个目标下执行它们。