2016-04-06 1 views
0

次のコードの結果を失敗しました。私は1つのテスト目的でテストケースを持っています。テストの実行中は、chdir()を実行します。のpython unittestのxmlファイルテストはテストに合格したかどうかに応じて、異なるフォルダに印刷されたログファイルに

テスト結果は(アサート*が失敗した)失敗している場合は、xmlファイルは、テストの現在のディレクトリに書き込まれます。テスト結果が合格の場合、xmlファイルは開始フォルダーに書き込まれます。ログファイルフォルダの指定方法については、コードスニペットを参照してください。フルパスを使用する以外に、python unittestが常にスタートフォルダに書き込むようにする方法はありますか?完全なパスを使用した以外は

logFolderName = "TestMyStuff_detail-" +str(scriptPid) 
unittest.main(testRunner=xmlrunner.XMLTestRunner(output=logFolderName), 
       failfast=False) 

答えて

0

、常に起動フォルダにそれを書くのpythonをunittestのようにする方法はありますか?

相対パスは常に現在の作業ディレクトリからの相対パスであるため、疑問があります。あなたのテストが現在の作業ディレクトリを変更した場合、あなたは運が悪いです。言ったことで

、完全なパスを使用するにはあまりにも難しいことではありません。

import os 
cwd = os.getcwd() 
localLogFolderName = "TestMyStuff_detail-" +str(scriptPid) 
logFolderName = os.path.abspath(os.path.join(cwd, localLogFolderName)) 
+0

ありがとうございます。ちょうどxmlファイルの場所は、テスト目的が終了した時点でcwdを使用するのではなく、失敗時にcwdによって決定されることが奇妙に思えます。 – cspiral

0

あなたの出力を書き込むために、固定パスを使用することができます。 ようなもの

path_to_my_output_folder="/path/to/output/" 

test1_write_xml(path_to_my_output_folder+"file1.xml") 
test2_write_xml(path_to_my_output_folder+"file2.xml") 
test3_write_xml(path_to_my_output_folder+"file3.xml") 
関連する問題