私のユースケースは、TeamCity http://www.jetbrains.com/teamcity/を使用していくつかのプロジェクトを構築し、それらに対してテストを実行することです。
私のテストでは、.net プロセスを作成し、7 を返す python メソッド (RPyC 経由) で実行します。
exit(7)
私のプロセスが終了するとき、彼の終了コードは7になると思います.これは実際にプロセスが終了コード7で終了することを意味します.
Assert(7, p.ExitCode)
しかし...他のコンピューターで同じユースケースを実行すると、テストが実行され、プロセスに7が返されますが、プロセスのリターンコードが7ではなく常に0であり、Assertメソッドがfalseを返すため、テストは失敗しました。
プロセスが何らかの理由で失敗したとしても、彼の終了コードは -1 またはその他のゼロ以外の整数であり、0 ではないはずだと思ったので、なぜこれが起こるのか何か提案はありますか?
同じコードが他のコンピューターでも機能するため、テスト環境に何らかの問題があるに違いありません。
コンピュータの違い:
良いもの (物理コンピューター): CPU: Intel xeon E5440 2.83 GHz RAM: 2 GB OS: Win7 32 ビット
悪い (仮想コンピューター): CPU: Intel xeon X5680 3.33 GHz (2 プロセッサ) RAM: 3.5 GB OS: Win7 Service pack 1 32 ビット
エティッド:
私が失敗したコンピューターでは、シェルの実行時に次のエラーが発生するという問題がありました:「UNCパスはサポートされていません」. これは、シェルがネット パスであるデスクトップ パスで開かれたために発生しました。次に、パスがデフォルト パス c:\windows に変更されました。しかし、ここで奇妙なのは、プロセスが正常に実行され続け、例外が発生せず、exid コードが 1 または -1 ではなく 0 であるため、なぜこれが発生するのかまだわかりません