procedure DisableTests(const ATest: ITest; const AExclude: TStrings);
var
I: Integer;
begin
if AExclude.IndexOf(ATest.Name) <> -1 then
begin
ATest.Enabled := False;
end;
for I := 0 to ATest.Tests.Count - 1 do
begin
DisableTests(ATest.Tests[I] as ITest, AExclude);
end
end;
示例用法(在Setup方法中创建TStringlist“Excludes”):
procedure TSuiteVersion1beta2.SetUp;
begin
// fill test suite
inherited;
// exclude some tests because they will fail anyway
Excludes.Add('TestA');
Excludes.Add('TestB');
DisableTests(Self, Excludes);
end;
2条答案
按热度按时间taor4pac1#
我编写了一个过程,它接受一个测试套件和一个测试名称列表,禁用所有具有匹配名称的测试,并且还执行到嵌套测试套件的递归。
示例用法(在Setup方法中创建TStringlist“Excludes”):
gv8xihay2#
对于已知失败的测试,您可以实现
ITestListener
接口并覆盖ShouldRunTest
。我为我的测试套件使用了一个公共基类
TMvTestSuite
,它添加了一个可以在构造函数中调用的函数AddKnownInvalidTest
(例如在AddTest
之后):