我使用DUnit。它有一个VCL GUITestRunner和一个控制台TextTestRunner。如何使用条件测试定义应用程序是否是Firemonkey?
在由两个Firemonkey和VCL中使用的单位形式应用我想实现如下:
- 如果Firemonkey的应用程序,如果目标是OS X,和在OS X执行 - > TextTestRunner
- 如果Firemonkey的应用程序,如果目标是32位的Windows,Windows上执行 - > AllocConsole + TextTestRunner
- 如果VCL应用 - > GUITestRunner
{$IFDEF MACOS}
TextTestRunner.RunRegisteredTests; // Case 1
{$ELSE}
{$IFDEF MSWINDOWS}
AllocConsole;
{$ENDIF}
{$IFDEF FIREMONKEY_APP} // Case 2 <--------------- HERE
TextTestRunner.RunRegisteredTests;
{$ELSE} // Case 3
GUITestRunner.RunRegisteredTests;
{$IFEND}
{$ENDIF}
哪种做案例2的最佳方式?
可以使用同时使用FireMonkey和VCL单元的应用程序。 –
案例1是否属实?我的意思是同时定义MACOS和MSWINDOWS?另外,你的意思是“目标是OS X,但在Windows上执行”? –
@TOndrej:因为在Wnidows上无法运行Mac OSX应用程序,因此建议自动重构问题 –