2011-12-15 100 views
2

因此,我正在爲某些代碼進行自動化測試。命令行中有一個名爲「cmdLineProc」的可執行文件。我使用C++編寫我的測試程序(不使用Python,也不使用我們使用的API來加速這些測試)。 命令行參數在測試中作爲字符串進行並傳遞給使用CreateProcess運行cmdLineProc的函數。 這很好。我可以調用cmdLineProc,它的工作原理和測試通過。但只有當這些沒有錯誤返回時。使用CreateProcess時從進程返回錯誤代碼

當測試我obv需要檢查的事情都失敗時,他們也應該如此。在這些情況下,cmdLineProc返回一個錯誤值。因此,如果我在命令行上運行cmdLineProc並使其失敗,我會收到一條消息,指出「Error,Failed:-3」,其中-3是錯誤代碼。 但是,當我通過使用CreateProcess的C++測試運行時,出現問題。 CreateProcess失敗並返回-1,代碼表示失敗。它沒有說明它爲什麼失敗。 我使用GetExitCodeProcess來獲取cmdLineProc的終止狀態。

任何人都知道是否有可能從cmdLineProc獲取錯誤值使用此方法返回?如果沒有人知道我可能會如何執行此操作?

+0

`GetLastError()` – Abyx 2011-12-15 14:57:17

+0

GetLastError不適用於我。它只是返回0.這是我第一次使用這個東西,但我嘗試把GetLastError()放在代碼中的幾個不同的地方,但每次它只返回0. – discodowney 2011-12-15 15:00:22

回答

0

GetExitCodeProcess返回運行進程的退出代碼。如果您在運行程序時看到另一個錯誤,那麼創建的過程只是向stdout寫入另一個錯誤。

在這種情況下,您將不得不分析創建的過程的輸出。

你可以看到如何完成here