2016-04-06 38 views
0

以下代码导致日志文件根据测试是否通过而打印到不同的文件夹。我有一个测试用例,只有一个测试目的。在测试运行期间,它执行chdir()。python unittest测试失败时在不同文件夹中创建的xml文件

如果测试结果失败(断言*失败),则将xml文件写入测试的当前目录。如果测试结果为通过,则将xml文件写入开始文件夹。查看代码片段了解我如何指定日志文件文件夹。除了使用完整的路径,有没有办法让python unittest总是把它写入开始文件夹?

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

回答

0

除了使用完整路径,是有办法使Python单元测试总是把它写入启动文件夹?

令人怀疑,因为相对路径总是相对于当前工作目录。如果你的测试改变了当前的工作目录,那你倒霉了。

随着中说,它不应该是太难用了一个完整的路径:

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

谢谢。看起来奇怪的是,xml文件的位置是由cwd在失败时确定的,而不是在测试目的结束时使用cwd,这对于通过cd的测试目的也是如此。 – 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")