0

私はこの概念を誤解しているかもしれませんが、コードにエラーがあり、そのコードをビルドできない場合、Codebuildのステップは失敗しませんか?私はビルドコマンドの中の1つのコマンドが失敗した場合、ビルドアクションの後に私に通知し、そして/またはそれ以上を停止すると仮定しました。AWS CodeBuild for Python

私はPythonコード(この場合は私のユニットテスト)を実行すると思われる非常に簡単なCodebuildを持っています。以下は私のbuildspec.ymlです:

version: 0.2 

phases: 
    build: 
    commands: 
     - echo Build started on `date` 
     - echo Compiling the Python code... 
     - pythonk run_unittests.py 
    post_build: 
    commands: 
     - echo Build completed on `date` 

そのrun_unittests.pyファイルで構文エラーがあります。

実行が終了すると、それは成功として表示されますが、ログファイルには、Pythonの構文エラーが記録されています。

これを失敗させる唯一の方法は、私のpythonファイル内ではなく、私のbuildspec.ymlファイルにエラーがある場合です。それはCodePiplelineの次のステップに進んでいます!

私は間違っていますか?そして、どうすればPythonコードや単体テストが断言できないのでしょうか?以下

私が詳細に参照線である。

Traceback (most recent call last): 
File "/codebuild/output/...py", line 33, in test_func 
poo 
NameError: global name 'poo' is not defined 

---------------------------------------------------------------------- 
Ran 5 tests in 0.000s 

FAILED (errors=2) 

答えて

2

CodeBuildは、それぞれ、成功/失敗を示すためにゼロ/非ゼロの終了コードの共通の慣例に基づいて、成功または失敗を決定します。

ビルドが成功した場合は、ユニットテストを実行するために使用しているコマンドが0の値を返していることを意味します。CodeBuildは成功として解釈します。

Pythonでは、sys.exit()を使用して、非ゼロ(エラー)の終了コードを返すことができます。例:sys.exit(1)

関連する問題