2024-05-20 00:54:48 发布
网友
我已经编写了一个专门的HTML解析器,我想用我下载的几个示例网页进行单元测试。
在Java中,我使用类资源将数据加载到单元测试中,而不必依赖它们位于文件系统的特定路径。在Python中有这样做的方法吗?
我找到了doctest.testfile()函数,但这似乎是doctests特有的。我只想得到一个文件句柄,一个特定的HTML文件,它是相对于当前模块的。
提前谢谢你的建议!
要从unittest中的文件加载数据,如果testdata与unittests在同一个目录中,有一个解决方案:
TESTDATA_FILENAME = os.path.join(os.path.dirname(__file__), 'testdata.html') class MyTest(unittest.TestCase) def setUp(self): self.testdata = open(TESTDATA_FILENAME).read() def test_something(self): ....
我想你的任务可以归结为here获得当前文件的任务。然后通过HTML文件和open文件的路径扩展该路径。
这是基于Ferran的回答,但是它在MyTest.tearDown()期间关闭文件,以避免“resourcehwarning:unclosed file”:
MyTest.tearDown()
TESTDATA_FILENAME = os.path.join(os.path.dirname(__file__), 'testdata.html') class MyTest(unittest.TestCase) def setUp(self): self.testfile = open(TESTDATA_FILENAME) self.testdata = self.testfile.read() def tearDown(self): self.testfile.close() def test_something(self): ....
要从unittest中的文件加载数据,如果testdata与unittests在同一个目录中,有一个解决方案:
我想你的任务可以归结为here获得当前文件的任务。然后通过HTML文件和open文件的路径扩展该路径。
这是基于Ferran的回答,但是它在
MyTest.tearDown()
期间关闭文件,以避免“resourcehwarning:unclosed file”:相关问题 更多 >
编程相关推荐