跨体系结构执行

TAEF 支持使用同一命令行从不同体系结构运行测试的功能 - 前提是运行测试的 OS 支持这些测试。 例如,这意味着可以使用单个“ (te.exe”命令行执行 x64 x86 测试) 上的 x64 和 x86 测试) 。

先决条件

若要为与“te.exe”本身不同的体系结构运行测试,该体系结构的 TAEF 二进制文件需要提供给“te.exe”。 目标体系结构可以是以下任一项:

  • x86
  • X64
  • ia64

TAEF 将在目标体系结构的名为 的文件夹中查找该体系结构的原始“te.exe”,该体系结构的 TAEF 二进制文件。

为不同的体系结构执行测试

为不同的体系结构执行测试不需要额外的配置 - 只需将给定的 DLL 作为参数传递给“te.exe”。 TAEF 将检查二进制文件以确定其目标体系结构,并实例化正确的主机进程以加载和运行测试。 例如,x86“te.exe”可以检查 x64 测试 DLL,并将启动 x64 进程来运行测试:

c:\taef\x86>te x64\Scenario.Tests.dll

由于“te.exe”命令行可以采用多个测试 DLL,因此可以混合使用体系结构,TAEF 将为给定的测试 DLL 选择正确的主机进程:

c:\taef\x86>te x64\Scenario.Tests.dll x86\Scenario.Tests.dll x64\UI.Tests.dll

这允许 TAEF 用户从单个命令行获取更多的测试覆盖范围,所有结果汇总到单个日志中。 如果没有此功能,每个体系结构的测试必须一起拉到自己的命令行中,单独执行,每次运行的结果组合在一起。

如果给定的测试文件 不是 特定于体系结构 (例如,编译为纯 IL) 的 C# 二进制文件,则它将使用与传递给它的“te.exe”相同的体系结构运行。

选择“按体系结构测试”

TAEF 会自动将“体系结构”元数据应用于需要特定体系结构的测试文件。 “体系结构”元数据的值是运行测试所需的体系结构,并且是以下项之一:

  • x86
  • X64
  • ia64

若要为特定体系结构选择测试,可以使用选择语言来匹配“体系结构”元数据。 例如,如果“Tests”文件夹包含 x86 和 x64 测试文件的组合,则以下命令行将仅运行 x64 测试:

c:\taef\x86>te Tests\*.Tests.dll /select:@Architecture='x64'

错误

在没有所需的目标体系结构二进制文件的情况下,将针对不同体系结构编译的测试文件传递到 TAEF 将导致错误消息。 以下示例演示了一个尝试运行 x64 测试的 x86“te.exe”,而不用所需的二进制文件填充“x64”子文件夹:

c:\>te x64\Scenario.Tests.dll
Test Authoring and Execution Framework v2.2 Build 6.1.7689.0 (release.091218-1251) for x86
Error: Please copy all x64 TAEF binaries to the 'c:\taef\x86\x64' directory in order to run x64 tests from this process. 
Error: Failed to create the ProcessHostController. TE.ProcessHost.exe may be unavailable. Terminating execution...
Error: No test cases were executed.