【问题标题】:Dont understand the exitcode result of a proccess不理解进程的退出代码结果
【发布时间】:2013-06-10 13:50:51
【问题描述】:

我的用例是我使用 TeamCity http://www.jetbrains.com/teamcity/ 构建一些项目并对其运行测试。

在我的测试中,我创建了 .net 进程并在其上运行返回数字 7 的 python 方法(通过 RPyC)。

exit(7)

我执行当我的进程退出时,他的退出代码将是 7。 这确实发生了退出代码为 7 的进程退出。

Assert(7, p.ExitCode)

但是...当我在其他计算机上运行相同的用例时,测试运行并将 7 返回给进程,但测试失败,因为进程的返回代码始终为 0 而不是 7,并且 Assert 方法返回 false。

我认为即使进程由于某种原因失败,他的退出代码也应该是 -1 或其他非零整数而不是 0 所以有什么建议为什么会发生这种情况?

这一定是测试环境有问题,因为相同的代码在其他计算机上也可以工作,所以这可能是什么原因?

电脑区别:

好的(物理计算机): CPU:英特尔至强 E5440 2.83 GHz 内存:2 GB 操作系统:Win7 32位

坏的(虚拟计算机): CPU:英特尔至强 X5680 3.33 GHz(2 个处理器) 内存:3.5 GB 操作系统:Win7 Service Pack 1 32 位

Etid:

在我失败的计算机中,当 shell 运行时出现以下错误:“不支持 UNC 路径”。发生这种情况是因为 shell 打开了桌面路径,即网络路径。然后路径更改为默认路径 c:\windows。但奇怪的是,这个过程一直运行良好,没有发生异常,而且 exid 代码是 0 而不是 1 或 -1 所以我仍然不明白为什么会发生这种情况

【问题讨论】:

    标签: python .net process teamcity exit-code


    【解决方案1】:

    这一定是测试环境有问题,因为相同的代码在其他计算机上也能工作,所以这可能是什么原因

    最可能的罪魁祸首通常是环境(就像您在os.environ 中可能遇到的那样)和竞争条件。从简单的开始:比较两个地方的执行环境。

    【讨论】:

      猜你喜欢
      • 2014-01-04
      • 2017-11-03
      • 2017-01-19
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2020-09-08
      • 2015-10-18
      相关资源
      最近更新 更多