我的用例是我使用TeamCity http://www.jetbrains.com/teamcity/构建一些项目并对它们运行测试。
在我的测试中,我创建.net进程并运行返回数字7的python方法(通过RPyC)。
exit(7)
我execpt当我的进程退出时他的退出代码将是7。 这确实发生了以退出代码7退出的过程。
Assert(7, p.ExitCode)
但是......当我在其他计算机上运行相同的用例时,测试运行并返回7但是测试失败,因为进程的返回码始终为0而不是7,并且Assert方法返回false。
我认为即使进程由于某种原因失败,他的退出代码应该是-1或其他非零整数而不是0所以任何建议为什么会发生这种情况?
测试环境一定是个问题,因为相同的代码在其他计算机上工作,那么可以做些什么呢?
计算机差异:
好(pysichal电脑): CPU:Intel Xeon E5440 2.83 GHz RAM:2 GB 操作系统:Win7 32位
坏(虚拟计算机): CPU:Intel Xeon X5680 3.33 GHz(2个处理器) RAM:3.5 GB 操作系统:Win7 Service Pack 1 32位
ETID:
在我失败的计算机中有一个问题,当shell运行时我收到以下错误:“不支持UNC路径”。这发生了因为用桌面路径打开的shell是净路径。然后路径更改为默认路径c:\ windows。但奇怪的是,这个过程保持良好运行并且没有异常发生,并且exid代码为0而不是1或-1所以我仍然不明白为什么会发生这种情况
答案 0 :(得分:0)
测试环境一定是个问题,因为相同的代码在其他计算机上工作,所以可以做到这一点
最可能的罪魁祸首通常是环境(就像你可能在os.environ
中遇到的那样)和竞争条件。从简单的东西开始:比较两个地方的执行环境。