3

我设置了一个 Hudson CI 系统,目前它用于构建项目和运行一些单元测试。我的下一步是将内存泄漏检测器 Purify 集成到构建周期中。现在我想在 purify 中启动单元测试,为此我创建了一个新的批处理任务,它运行以下命令:

purify.exe /SaveTextData MyExecutable.exe --test TestLibrary.dll --output xml

正如我在 Purify 文档中所读到的,使用 /SaveTextData 选项是为了在 GUI 模式下运行 purify。如果我在命令行中的本地工作站上运行此命令,它将完美运行。但如果它是由 Hudson 发起的,则不会发生任何事情。可惜没有净化记录...

有没有人尝试过通过 Hudson 或任何其他 CI 系统开始净化?

提前致谢。

此致

马丁

编辑:我忘了告诉你,我让 Hudson 在不同的计算机上作为主从运行。在主服务器上,我配置了一个任务,该任务应该在从服务器上的 purify 中启动单元测试。我正在通过 JNLP 运行从站。

编辑 18.03.2010:

好的,所以最后我更接近问题的根源。

我发现,在本地净化中运行我的单元测试,日志文件 EngineCmdLine.log 包含三个命令。

我开始使用以下命令进行净化:

purify.exe /SaveTextData TestRunnerConsoleWD.exe --test TestDemoWD.dll

手动启动净化时EngineCmdLine.log的输出:

文件:D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestRunnerConsoleWD.exe

文件:C:\WINDOWS\system32\ws2_32.dll

文件:D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll

通过 Hudson 启动时的输出:

File: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestRunnerConsoleWD.exe
File: C:\WINDOWS\system32\ws2_32.dll

File: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll

File: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll

purify 的错误输出:

Instrumenting: 
  BtcTestDemoWD.dll 313856 bytes

Purify: While processing file > D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TESTFWWD.DLL:
Error: Cannot replace file c:\Programme\IBM\RationalPurifyPlus\PurifyPlus\cache\BTCTESTFWWD$Purify_D_workspace_hudson_workspace_Purify__TestFW__CommonsCoreTest__Cpp__msvs9.DLL.    

Is it in use?

TESTFWWD.DLL 505344 bytes


Unable to instrument D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll (0x1)

问题是,为什么 purify 使用 TestDemoWD.dll 库启动两次命令?

4

0 回答 0