Te.exe 命令选项

使用情况

<te.exe test_binaries> [/appendWttLogging] [/breakOnCreate] [/breakOnError] [/breakOnInvoke] [/coloredConsoleOutput] [ /console:flushWrites] [[/console:position=[x,y | current] [/console:size=<x,y>] [ /console:topmost ] [/defaultAppDomain] [/disableConsoleLogging] [/disableTimeouts] [/dpiaware ] [/enableWttLogging] [/inproc] [/isolationLevel] [/labMode] [/list] [/listProperties] [/logFile:name>] [/logOutput:<<mode>] [/miniDumpOnCrash] [/miniDumpOnError] [/name:<testname>] [/outputFolder:<folderName] [/p:<ParamName>>=<ParamValue>] [/parallel] [/persistPictResults] [/pict:<OptionName>=<OptionValue>] [/rebootStateFile] [/reportLoadingIssue] [/runas:<RunAsType>] [/runIgnoredTests] [/runon:<MachineName>] [/screenCaptureOnError] [/select:<query>] [/sessionTimeout:<value>] [/stackFrameCount:<value>] [/stackTraceOnError] [/terminateOnFirstFailure] [/testDependencies:files>] [/testmode:<Loop] [/testmode:Stress] [/testTimeout:<value>] [/unicodeOutput:<true/false>] [/version] [/wttDeviceString:<value>] [/wttDeviceStringSuffix:<value>]

选择/执行命令

test_binaries

指定要执行的一个或多个测试文件(用空格分隔)。 支持使用通配符。

te.exe test1.dll

解释: 在test1.dll中运行所有测试。

te.exe test1.dll test2.dll test3.dll

解释: 在test1.dll、test2.dll和test3.dll中运行所有测试。

te.exe *.dll

解释: 运行当前目录中所有 dll 中的所有测试。

/coloredConsoleOutput:<true/false>

指定 TAEF 是否应输出彩色控制台文本。 默认值为 true。 如果设置为 false,TAEF 将使用默认控制台颜色输出所有文本。

te.exe test1.dll /coloredConsoleOutput:false

/console:<optionName>=<value>

提供用于配置 TE 使用控制台的选项。 可以使用以下选项:

/console:flushWrites

使控制台输出在写入每行后刷新 - 当TE.exe的输出已重定向时非常有用。

/console:position=[x,y | current ]

设置主机窗口相对于主监视器角的位置(以像素为单位)。 使用当前指定在从重新启动恢复时应存储和使用当前控制台位置。

/console:size=[ <x,y> | current ]

设置控制台窗口的大小(以字符维度为单位)。 屏幕缓冲区大小将增加,以匹配窗口的大小(如有必要)。 使用当前指定在从重新启动恢复时应存储和使用当前主机大小。

/console:topmost

在执行期间,使控制台在桌面 z 顺序中保持运行te.exe“最顶层”。

/dpiaware

在标记为 DPI 感知的进程中执行测试,请参阅 “高 DPI”。 也可以通过元数据(“DpiAware”)来设置此设置。

/inproc

在TE.exe进程本身而不是 TE 中执行所有测试。ProcessHost.exe。

te.exe test1.dll /inproc

注意

TE 仅支持在使用 /inproc 设置时一次执行一个测试 dll。

/isolationLevel:<Level>

指定执行 TAEF 测试时要使用的最小隔离级别。 如果此值与指定为元数据的 IsolationLevel 冲突,则该值将成为最紧密范围的隔离级别。 有关更多详细信息,请参阅 测试隔离

te.exe test1.dll /isolationLevel:Class

/labMode

执行测试并删除潜在的阻止 UI(例如,在崩溃测试上Windows 错误报告对话框)。

/list

列出所有 test_binaries 的名称及其中的类和方法。 如果指定了选择条件,则仅列出满足条件的那些名称。

 te.exe test1.dll test2.dll /list

 WEX::UnitTests::Test1
  WEX::UnitTests::Test1::Example1
  WEX::UnitTests::Test1::Example2
  WEX::UnitTests::Test1::Example3

 WEX::UnitTests::Test2
  WEX::UnitTests::Test2::Example1
  WEX::UnitTests::Test2::Example2
  WEX::UnitTests::Test2::Example3
 te.exe test1.dll test2.dll /select:@name='*Example2*' /list

 WEX::UnitTests::Test1
  WEX::UnitTests::Test1::Example2

 WEX: :UnitTests::Test2
  WEX::UnitTests::Test2::Example2

/listProperties

列出所有test_binaries的名称和属性以及其中的类和方法以及 Setup 和 Teardown 函数名称(如果可用)。 如果指定了选择条件,则仅列出满足条件的那些名称。

 te.exe test1.dll test2.dll /listProperties

 WEX::UnitTests::Test1
  WEX::UnitTests::Test1::Example1
   Setup: Test1Setup
   Teardown: Test1Teardown
   Property[ThreadingModel] = MTA
  WEX::UnitTests::Test1::Example2
   Setup: Test1Setup
   Teardown: Test1Teardown
   Property[ThreadingModel] = STA
  WEX::UnitTests::Test1::Example3
   Setup: Test1Setup
   Teardown: Test1Teardown
   Property[ThreadingModel] = STA

 WEX::UnitTests::Test2
  WEX::UnitTests::Test2::Example1
   Property[ThreadingModel] = MTA
  WEX::UnitTests::Test2::Example2
   Property[ThreadingModel] = STA
  WEX::UnitTests::Test2::Example3
   Property[ThreadingModel] = MTA
 te.exe test1.dll test2.dll /select:@name='*Example2*' /listProperties

 WEX::UnitTests::Test1
  WEX::UnitTests::Test1::Example2
   Setup: Test1Setup
   Teardown: Test1Teardown
   Property[ThreadingModel] = STA

 WEX::UnitTests::Test2
  WEX::UnitTests::Test2::Example2
   Property[ThreadingModel] = STA

/name:<testname>

基于测试名称的选择是“/select:@Name='<testname>'”的简单替代方法。 testname <> 仍可以包含通配符(“*”和“?”),但不应包含在单引号中。 如果在命令提示符下指定了 /select 和 /name,则 /select 查询优先且忽略 /name。

te.exe test1.dll /name:*TestToLower

解释: 在方法名称以“TestToLower”结尾的test1.dll运行所有测试。 可以使用选择条件作为 /select:@Name='*TestToLower'来表示这一点。

te.exe test1.dll /name:*StringTest*

解释: 在test1.dll中运行所有测试,其中包含其命名空间、类或方法名称中的短语“StringTest”。

/outputFolder:<folderName>

指定要放置所有生成的文件的文件夹。 默认为当前目录。 可以使用环境变量,例如:

te.exe test1.dll /outputFolder:%TEMP%\\MyOutput

/p:<ParamName>=<ParamValue>

使用参数名称=ParamName 和参数值=ParamValue 定义运行时参数。 可以从测试方法或设置/清理方法访问这些参数。

te.exe test1.dll /p:x=5 /p:myParm=cool

可以在测试代码中将 x 捕获为多个受支持的类型之一。 例如,在这里可以看到我们将其检索为 int 和 WEX::Common::String:

                int x = 0;
                String xString;
                RuntimeParameters::TryGetValue(L"x", x);
                RuntimeParameters::TryGetValue(L"x", xString);

有关详细信息,请访问 TAEF。运行时参数 帮助页。

/平行

跨多个处理器并行执行测试。 测试必须选择加入并行执行,方法是使用“并行”元数据进行标记。

te.exe test1.dll /parallel

有关详细信息,请访问 并行 帮助页。

/persistPictResults

在当前执行中使用 PICT DataSource 为测试PICT.exe生成的缓存结果。 后续的测试执行将尝试使用缓存的结果,以针对同一模型和种子文件运行PICT.exe。

/pict:<OptionName>=<OptionValue>

提供用于在使用 PICT DataSource 进行测试时控制PICT.exe的选项。 设置其中一个选项当前会替代代码中的所有关联元数据。 可以使用以下选项:

/Pict:Order=3
通过PICT.exe的 /o 命令选项传递值来设置组合顺序。

/Pict:ValueSeparator=;
通过PICT.exe的 /d 命令选项传递值来设置值分隔符。

/Pict:AliasSeparator=+
通过用于PICT.exe的 /a 命令选项传递值来设置别名分隔符。

Pict:NegativeValuePrefix=!
通过用于PICT.exe的 /n 命令选项传递值来设置负值前缀。

/Pict:SeedingFile=test.seed
通过用于PICT.exe的 /e 命令选项传递值来设置种子文件的路径。

/Pict:Random=true
打开或关闭 PICT 结果中的随机性,并使 PICT 数据源记录使用的随机种子。

/Pict:RandomSeed=33
通过用于PICT.exe的 /r 命令选项传递值来设置随机种子。 此设置将打开 Pict:Random,除非 Pict:Random 显式设置为 false。

/Pict:CaseSensitive=true
设置为 true 时,通过将 /c 命令选项传递给PICT.exe来启用区分大小写。

/Pict:Timeout=00:01:30
设置在终止进程之前等待PICT.exe完成的时间。 该值的格式为 [Day.]Hour[:Minute[:Second[.FractionalSeconds]]]。

/runas:<RunAsType>

在指定的环境中执行测试。 有关详细使用情况信息, 请参阅 RunAs 文档。

te.exe *.dll /runas:System

解释: 将所有测试作为系统运行。

te.exe *.dll /runas:Elevated

解释: 以提升的用户身份运行所有测试。

te.exe *.dll /runas:Restricted

解释: 以非提升的用户身份运行所有测试。

te.exe *.dll /runas:LowIL

解释: 在低完整性进程中运行所有测试。

/runIgnoredTests

执行或列表(如果与 /list 或 /listProperties 结合使用)所有测试,包括测试类和测试方法,并将“Ignore”元数据设置为“true”。 默认情况下,在执行期间和列出期间会跳过“Ignore”元数据设置为“true”的测试类和测试方法。

/runon:<MachineName>

在指定的计算机上远程执行测试。 TAEF 对执行测试所需的二进制文件进行身份验证、授权和部署,并将所有信息记录回原始控制台。 有关详细使用情况信息, 请参阅“跨计算机测试执行 ”文档。

te.exe *.dll /runon:TestMachine1

解释: 在“TestMachine1”上远程运行所有测试。

/select:<query>

从每个测试二进制文件选择测试时要使用的选择条件。 选择条件由以下一个或多个组成:

@[属性名称] = [值作为字符串]

@[属性名称] >= [value as float or integer]

@[属性名称] > [value as float or integer]

@[属性名称] <= [value as float or integer]

@[属性名称] < [value as float or integer]

  • 作为字符串的属性值必须位于单引号内。
  • 可以使用“and”、“or”和“not”(不区分大小写)指定复合选择条件。
  • 属性值通过“*”和“?”字符支持通配符。
  • 对于浮点值和整数值,“*”字符也可用作“exists”,但不能用于部分匹配。 例如: /select:“@Priority=*” 有效,但 /select:“@Priority=4*” 无效。

te.exe test1.dll /select:“(@Name='*TestToLower'或 @Owner='C2'),而不是(@Priority < 3)”

解释: 运行test1.dll方法名称以“TestToLower”结尾或所有者为“C2”的所有测试;优先级不小于 3。

te.exe test1.dll test2.dll /select:@Priority=\*

解释: 在test1.dll中运行所有测试,并在其中test2.dll在其测试元数据中指定了优先级。

te.exe test1.dll /select:@Name='*StringTest*'

解释: 在test1.dll中运行所有测试,其中包含其命名空间、类或方法名称中的短语“StringTest”。

/sessionTimeout:<value>

为整个执行Te.exe设置会话超时。 如果超时过期,测试会话将正常中止,进程退出代码表示发生超时。

注意

超时值必须采用以下格式指定:

[Day.]Hour[:Minute[:Second[.FractionalSeconds]]]

注意

如果在 WTT 下运行,则此值可用于确保 Wtt 日志文件保持不变,即使 TAEF 会话超时也是如此。

te.exe test1.dll /sessionTimeout:0:0:0.5

整个测试会话将在 .5 秒后超时。

te.exe test1.dll /sessionTimeout:0:0:45

整个测试会话将在 45 秒后超时。

te.exe test1.dll /sessionTimeout:0:20

整个测试会话将在 20 分钟后超时。

te.exe test1.dll /sessionTimeout:5

整个测试会话将在 5 小时后超时。

te.exe test1.dll /sessionTimeout:1.2

整个测试会话将在 1 天 2 小时后超时。

/terminateOnFirstFailure

首次遇到测试失败时终止测试运行。 将调用该测试的所有拆解操作,但所有后续测试都标记为忽略。 由于已知问题,使用测试模式时,测试可能会继续运行。

te.exe test1.dll /terminateOnFirstFailure

/testDependencies:<files>

指定在使用 跨计算机测试执行时要部署的其他测试依赖项。 除非提供完整路径,否则 TAEF 将相对于当前目录(而不是测试目录)进行搜索。

te.exe *.dll /runon:TestMachine1 /TestDependencies:test*.jpg;file1.doc

解释: 在“TestMachine1”上远程运行所有测试,并在执行任何测试之前将“test*.jpg”和“file1.doc”复制到远程计算机。 每个文件规范可以包含通配符(test.txt;test*.dll; 等),以匹配一个或多个文件。

/testTimeout:<value>

为整个执行Te.exe设置全局测试超时。 此值将替代为正在执行的给定测试设置的任何 测试超时 元数据。

注意

超时值必须采用以下格式指定:

[Day.]Hour[:Minute[:Second[.FractionalSeconds]]]

注意

与 /inproc 一起使用时将被忽略。

te.exe test1.dll /testTimeout:0:0:0.5

每个测试和设置/清理方法将在 .5 秒后超时。

te.exe test1.dll /testTimeout:0:0:45

每个测试和设置/清理方法将在 45 秒后超时。

te.exe test1.dll /testTimeout:0:20

每个测试和设置/清理方法将在 20 分钟后超时。

te.exe test1.dll /testTimeout:5

每个测试和设置/清理方法将在 5 小时后超时。

te.exe test1.dll /testTimeout:1.2

每个测试和设置/清理方法将在 1 天和 2 小时后超时。

/unicodeOutput:<true/false>

当 TE 通过管道传递给文本文件时,它默认输出 unicode。 其中一个例外是,如果请求追加到现有 ANSII 文件(通过“'>>)。

若要重写此行为,可以指定 /unicodeOutput:false。 这将强制 TE 始终将 ANSII 输出到该文件。

te.exe test1.dll /unicodeOutput:false > output.txt

记录器设置

/appendWttLogging

启用 WTT 日志记录后,将追加到日志文件,而不是覆盖它。 必须与 /enableWttLogging 结合使用

te.exe test1.dll /enableWttLogging /appendWttLogging

将在测试执行完成时创建或追加到名为 TE.wtl 的日志文件。

/enableWttLogging

启用 WTT 日志记录;Wttlog.dll必须在路径中可用。

te.exe test1.dll /enableWttLogging

将在测试执行完成时生成名为 TE.wtl 的日志文件。

/defaultAppDomain

在默认应用程序域中执行托管测试。

te.exe managed.test1.dll /defaultAppDomain

/disableConsoleLogging

禁用控制台日志输出;必须与 /enableWttLogging 结合使用

te.exe test1.dll /disableConsoleLogging /enableWttLogging

/logFile:<name>

指定要用作 wtt 日志文件的名称;必须与 /enableWttLogging 结合使用

te.exe test1.dll /logFile:myCustomLogFile.xml /enableWttLogging

将在测试执行完成后生成名为 myCustomeLogFile.xml的 日志文件。

/logOutput:<mode>

设置记录器输出级别。 有效值为:

  • :启用一些额外的控制台输出,例如在每个跟踪旁边打印时间戳。
  • :仅发出核心事件(开始、结束组等)和错误。 日志文件包括优先级较低的详细信息,预先提供任何错误来提供故障上下文。
  • LowWithConsoleBuffering:与 Low 相同,但包括日志文件和控制台输出中失败的上下文。
  • 最低:与 “低”相同,但控制台输出仅包括错误、测试失败和执行摘要。

/version

输出详细的版本信息。

/wttDeviceString:<value>

完全替代 WexLogger 初始化 WttLogger 时使用的 WttDeviceString。

te.exe test1.dll /wttDeviceString:$Console

/wttDeviceStringSuffix:<value>

在初始化 WttLogger 时,将指定的值追加到 WexLogger 使用的默认 WttDeviceString。 如果 还指定了 wttDeviceString ,则忽略。

te.exe test1.dll /wttDeviceStringSuffix:$Console

调试设置

/breakOnCreate

在实例化每个测试类之前中断调试器。

te.exe test1.dll /breakOnCreate

/breakOnError

如果记录错误或测试失败,则会中断调试器。

te.exe test1.dll /breakOnError

/breakOnInvoke

在调用每个测试方法之前中断调试器。

te.exe test1.dll /breakOnInvoke

/disableTimeouts

禁用执行期间的所有超时。 当 TAEF 正在等待正在调试的程序的一部分时,调试时,这非常有用,以防止超时。

te.exe test1.dll /disableTimeouts

/miniDumpOnError

如果发生测试错误或失败,则获取并记录小型转储。

te.exe test1.dll /miniDumpOnError

/miniDumpOnCrash

如果发生测试崩溃,则获取并记录一个小型转储。

te.exe test1.dll /miniDumpOnCrash

/rebootStateFile

显式启用重新启动测试的执行

te.exe test1.dll /rebootStateFile:myFile.xml

/reportLoadingIssue

当 TAEF 无法加载测试 dll 时显示错误说明对话框。 只能用于调查本机测试 dll 加载问题。

te.exe test1.dll /reportLoadingIssue

/screenCaptureOnError

如果发生测试错误或失败,则获取并记录屏幕捕获。

te.exe test1.dll /screenCaptureOnError

/stackFrameCount:<value>

指定要在获取调用堆栈时显示的堆栈帧数。 默认值为 50。

te.exe test1.dll /stackFrameCount:100

/stackTraceOnError

如果发生测试错误或失败,则获取并记录堆栈跟踪。

te.exe test1.dll /stackTraceOnError

测试模式

/testmode:Loop

允许使用两个变量循环和 LoopTest 来控制执行。

  • 循环:控制执行整个运行次数。 默认值 1。
  • LoopTest:控制执行单个测试的次数。 默认值为 10。

te.exe test1.dll /testmode:Loop

解释:test1.dll 10 次运行每个测试(LoopTest默认值)。 整个执行运行一次(循环的默认值)。

te.exe test1.dll test2.dll /testmode:Loop /Loop:3 /LoopTest:1

解释: 在test1.dll中运行每个测试,并test2.dll一次(由 LoopTest 确定)。 整个执行(test1.dll和test2.dll中的所有组合测试)都运行 3 次 - 由 循环决定。

/testmode:Stress

在“压力”测试模式下,TAEF 将无限期运行测试,直到输入 Ctrl+C,或直到将WM_CLOSE消息发送到 TAEF 的隐藏窗口为止。 /testmode:stress 必须与 /inproc 一起运行。

te.exe test1.dll /testmode:Stress /inproc

有关此模式下支持的详细信息和其他参数,请参阅 测试模式