2

我不确定如何使用 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.

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

4

3 回答 3

0

DUnitX 在单元 DUnitX.TestFramework 中使用一对 Log 和 Status 方法在 TObject 上定义了一个类助手。只要此单元在您的使用列表中,您就可以在任何对象上调用这些方法,例如通过以下方式:

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)中描述了类助手

于 2019-06-30T15:15:14.257 回答
0

我找到了一种使用system.write().

于 2019-06-29T15:54:27.940 回答
0

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

logger := TDUnitXConsoleLogger.Create ( False {quietMode} );
于 2021-08-04T09:49:09.177 回答