使用 .bat 文件进行 运行 编码的 UI 测试,我如何指定哪个编码的 ui 测试进行 运行?

Using .bat file to run coded UI tests, how do I specify which coded ui test to run?

我确实知道 运行 如何使用 windows .bat 文件对 ui 测试进行编码。它相对简单。您下载 MS Test Agent here 并仅使用 VS 2017 或 VS 2015 的相关 link。在您编码的 ui 项目中,select Build - > 批次 Build。复制 dll 并制作一个引用您编码的 ui dll.

的 .bat 文件

我的 .Bat 文件如下所示:

C:

cd codedui

set mstestPath="C:\Program Files (x86)\Microsoft Visual 
Studio17\TestAgent\Common7\IDE"

%mstestpath%\mstest /testcontainer:AppUnderTestCodedUITesting.dll

作为参考,更详细地介绍了这些步骤here

我的问题是:如何 运行 使用我的 .bat 文件进行 1 次测试?问题是使用描述的方法,我的所有测试 运行。当然我有数百个小测试(每个测试通常点击 1 个按钮或做 1 件小事)。我不想 运行 所有那些小测试,我想要 1 个且只有 1 个有序测试。我如何实现这一目标?

非常感谢。

通常情况下,经过一番摸索之后,我自己找到了答案。我只需要添加 /test 选项。所以我现在的测试线是:

%mstestpath%\mstest /testcontainer:SynTQCodedUITesting.dll /test:common_test_A

其中 "common_Test_A" 是我的测试名称。我仍然不知道如何指定一个有序的测试,但是我的编码 ui 项目有一点变化,我可以做一个测试,按照我想要的顺序运行我需要的所有测试,这有点就像一个有序的测试。

如果有人碰巧知道如何指定有序测试而不是测试,那就太棒了。

我无法验证,但您尝试创建一个 ordered test then use the ordered test file as testcontainer:

The test container is a file that contains the tests you want to run. For example, for ordered tests, the test container is the .orderedtest file that defines the ordered test.

如果此方法不起作用,您可以将测试声明为 运行,方法是用逗号分隔它们:

%mstestpath%\mstest /testcontainer:SynTQCodedUITesting.dll /test:common_test_A,comm_test_B

但是他们不会被订购。我相信 MSTest 会根据 class 和方法的名称来播放它们。

我认为你不应该 运行 一个主测试中的所有测试。如果一个测试失败,那么主测试也将失败(没有异常管理)并且所有进一步的测试都不会进行。您应该使用 TestInitialize 和 TestCleanup 方法使您的测试彼此独立。

粒度也是调试测试时的关键。