使用TDUnitX.CurrentRunner.Log时无日志输出

时间:2019-06-29 00:49:31

标签: delphi dunitx

我不确定如何使用DUnitX将某些字符串输出到控制台窗口,所以这是我的尝试:

unit Unit1;

interface
uses
  DUnitX.TestFramework;

type
  [TestFixture]
  TMyTestObject = class(TObject)
  public
    // Sample Methods
    // Simple single Test
    // Test with TestCase Attribute to supply parameters.
    [Test]
    [TestCase('TestA','1,2,3')]
    [TestCase('TestB','3,4,7')]
    procedure Test1(AValue1, AValue2, _Result : Integer);
  end;

procedure TMyTestObject.Test1(AValue1, AValue2, _Result: Integer);
begin
  TDUnitX.CurrentRunner.Log(TLogLevel.Information, 'Information');
end;

initialization
  TDUnitX.RegisterTestFixture(TMyTestObject);
end.

什么都没有印出来,所以我应该怎么写?

3 个答案:

答案 0 :(得分:0)

我找到了一种使用system.write()向控制台输出信息的简单方法。

答案 1 :(得分:0)

DUnitX在TObject上定义了一个类帮助器,它在单元DUnitX.TestFramework中具有几个Log和Status方法。每当此单位在您的使用列表中时,您都可以在 any 对象上调用这些方法,例如,通过以下方式:

uses
  DUnitX.TestFramework;

[...]

procedure TMyTestObject.Test1(AValue1, AValue2, _Result: Integer);
begin
  self.Log(TLogLevel.Information, 'Information');
end;

之所以可以使用该语法,是因为类助手是向已定义的类添加方法和属性的一种方法。通过在TObject上定义类帮助器,可以扩展所有对象

班级助手在Embarcadero Wiki中进行了描述:Class and Record Helpers (Delphi)

答案 2 :(得分:0)

必须在创建 TDUnitXConsoleLogger 时禁用安静模式

logger := TDUnitXConsoleLogger.Create ( False {quietMode} );