首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过编程方式按名称禁用DUnit测试?

如何通过编程方式按名称禁用DUnit测试?
EN

Stack Overflow用户
提问于 2010-11-26 00:30:22
回答 1查看 623关注 0票数 4

对于集成测试,我创建了一个DUnit测试套件,它为第三方组件(消息代理)的每个版本运行一次。不幸的是,一些测试总是因为被测试组件的某些版本中的已知bug而失败。

这意味着测试套件永远不会100%完成。然而,对于自动化测试,需要100%的成功分数。DUnit没有提供现成的方法来按名称禁用测试套件中的测试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-26 00:32:19

我写了一个过程,它接受一个测试套件和一个测试名称列表,禁用所有具有匹配名称的测试,并执行到嵌套测试套件的递归。

代码语言:javascript
复制
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’):

代码语言:javascript
复制
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;
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4279127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档