2

目前我注意到我的自动化测试(CodedUI)有时运行得有点慢。我想在它们运行 VS2010 时对它们运行性能分析工具。我曾尝试使用 Red Gate 的 ANTs Profiler,但对我应该将其附加到哪个进程(或其他?)感到困惑。

我最接近的方法是从命令行启动 Profiler 并调用 Mstest.exe 作为进程参数运行一些测试。这只会返回我 VS 方法的性能,而不是我自己的测试代码。

//e.g
Profile.exe /e:"Mstest /testcontainer:Tests\bin\debug\CodedUITests.dll /test:Login /unique" /csv:"C:\testing\results.csv"

我从这里这里构建了这个命令。

有谁知道用 cpu/内存分析器(本地或其他方式)启动一组测试然后读取结果的干净方法?

可用机器按优先顺序排列:Windows 7/XP/Server 2008 R2
可以从:VS2010 运行,或作为构建的一部分(TFS/实验室管理)

4

2 回答 2

3

在进一步阅读之后,我发现我需要检测我的二进制文件,以便分析器在运行时了解我的方法。我使用VSInstr 执行此操作,它将测试 dll 转换为检测的。然后,当我使用上面的命令行运行探查器时,探查器工作。

IE

  • 跑:VSinstr.exe Your.Tests.dll
  • 打开蚂蚁探查器。
  • 选择 Mstest.exe 作为 .Net 可执行文件。
  • 将测试项目 bin\Debug 文件夹设置为工作目录。
  • 在争论的地方:
    /testcontainer:C:\...\YOURTests\bin\debug\Your.Tests.dll /test:LoginTest
于 2013-01-18T06:00:52.680 回答
0

如果您非常确信您的测试不会以某种令人讨厌的方式爆炸,您还可以添加/noisolation到您传递给 mstest 的参数中。也就是说,你的命令会说,

Profile.exe /e:"Mstest" /args:"/testcontainer:Tests\bin\debug\CodedUITests.dll /test:Login /unique /noisolation" /csv:"C:\testing\results.csv" /data:c:\testing\moodilymooh

另一种想法是,您可以添加/data到 profile 命令以使其输出一个 app[0-9]+results 文件,您可以从 GUI 中使用该文件。

于 2015-03-29T14:58:26.520 回答