我设置了Hudson CI系统,目前它用于构建项目和运行一些单元测试。我的下一步是将内存泄漏检测器Purify集成到构建周期中。 现在我想在purify中启动单元测试,为此我创建了一个新的批处理任务,它按照以下命令运行:
purify.exe /SaveTextData MyExecutable.exe --test TestLibrary.dll --output xml
正如我在Purify文档中读到的那样,使用/ SaveTextData选项是为了在GUI模式下运行purify。如果我在命令行中在本地工作站上运行此命令,它可以正常工作。但是如果它是由Hudson启动的,那么没有任何反应。不幸的是,没有净化的日志......
有人试图通过Hudson或任何其他CI系统开始净化吗?
提前致谢。
祝你好运
马丁
编辑:我忘了告诉你,我有哈德森作为主人跑 奴隶在不同的电脑上。在主人上我配置了一个任务 哪个应该在奴隶净化中启动单元测试。我是 通过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库启动两次命令?