【问题标题】:Is there a way to use EQATEC profiler on my NUnit Unit tests?有没有办法在我的 NUnit 单元测试中使用 EQATEC 分析器?
【发布时间】:2011-09-03 00:00:18
【问题描述】:

我想在我的 NUnit 单元测试中使用 EQATEC 分析器,就像我过去将 JetBrains dotTrace 与 TestDriven.NET 和 NUnit 结合使用一样。有没有办法做到这一点?事实上,我似乎需要将我的 UnitTest 包装在控制台应用程序中,然后在其上使用分析器。

【问题讨论】:

    标签: c# c#-4.0 nunit testdriven.net eqatec


    【解决方案1】:

    EQATEC Profiler 实际上非常适合自动化:它有一个命令行版本和一个 API,您可以使用它来控制分析的大部分方面,并且您只需在单元测试中使用它即可。

    API 在分析器的user guide 中进行了描述。你想做的大概是这样的:

    1. 首先添加对 profiler-API 的引用。您将在已安装的 RuntimeDLL 文件夹中找到四种不同平台的程序集。您可能正在寻找 EQATEC.Profiler.RuntimeFullNet.dll,但也有针对 NetCF、Silverlight 和 WP7 的实现。
    2. 现在,您可以将代码添加到您的单元测试中,以便在您需要时拍摄计时快照,并使用EQATEC.Profiler.Runtime.TakeSnapshot() 方法将它们保存到您选择的文件中。以后可以在分析器中检查这些报告文件。

    请记住,您仍然需要使用探查器检测已编译的单元测试并运行已检测的版本,但这可以使用探查器的命令行版本 EQATECProfilerCmd.exe 自动执行。使用起来真的很简单,就像这样:

    EQATECProfilerCmd -build <your app directory>
    

    【讨论】:

      【解决方案2】:

      我喜欢在 Visual Studio 的构建后事件命令行中使用构建变量。 EQATECProfilerCmd 不喜欢路径末尾的反斜杠,所以我这样做:

      "C:\Program Files (x86)\EQATEC\EQATECProfiler\EQATECProfilerCmd" -build "$(TargetDir)."

      请注意我是如何在命令末尾添加句点的。 还要注意我是如何在路径周围加上引号的,因为我知道路径中有空格。

      【讨论】:

      • 这种愚蠢的行为是由 Visual Studio 造成的,而不是分析器:在 VS 中,TargetDir 变量总是以反斜杠结尾,所以当 VS 展开“($TargetDir)”时,它变成例如“C:\ somepath\",即带有转义的结束引号。这只是搞砸了,但是添加点的技巧会产生“C:\somepath\”。这是一条正确的道路。
      猜你喜欢
      • 2012-07-04
      • 2021-08-23
      • 1970-01-01
      • 2019-03-24
      • 2010-11-14
      • 2017-08-03
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多