私はいくつかのpythonコードとpytestテストの束を持っています。私は失敗することを期待テストのなぜpy.testは私のxfailテストをスキップして表示しますか?
いくつかの(それは私がエラー処理をテストしていたので、私は自分のコードが例外をスローするようになります入力に渡し、ある。)
これを行うために、私は、コードを持っていますこのように:
CF_TESTDATA =[('data/1_input.csv', 'data/1_input.csv', 'utf-8'),
pytest.mark.xfail(('data/1_input_unknown_encoding.txt', '', 'utf-8')),
('data/1_input_macintosh.txt', 'data/1_converted_macroman.csv', 'macroman')]
@pytest.mark.parametrize('input_file, expected_output, encoding', CF_TESTDATA)
def test_convert_file(testdir, tmpdir, input_file, expected_output, encoding):
'''
Test the function that converts a file to UTF-8.
'''
...
ここでの考え方があることが、この試験のセカンドランで、INPUT_FILE =「データ/ 1_input_unknown_encoding.txt」で、私は、テスト対象のコードが失敗することを期待します。
これはうまくいくようですが、コマンドラインから実行すると、pytestはテストがxfailedであることを通知します。私はデバッガのコードに従うことができ、期待される例外がスローされていることがわかります。それはすべてうまくいいです。
しかし、Jenkinsはこのテストをskkippedとして示しています。出力を見ると、次のメッセージが表示されます。
Skip Message
expected test failure
なぜテストはスキップされますか?テストが実行されているように見え、期待どおりに失敗します。これはスキップされるテストと同じではありません。
、あなたは対話型の実行と同じカレントディレクトリからそれを実行していますか? –
私はJenkinsがJUnitXMLの出力を読み込むと思いますか?私はJUnitXMLが単純にxfailを言う方法がないと推測しているので、pytestはskipを使います。しかし、私は実際には知りません。 –