How to load data from a file, for a unit test, in python?
我已经编写了一个专门的HTML解析器,我想用我下载的几个示例网页进行单元测试。
在爪哇中,我使用类资源,将数据加载到单元测试中,而不必依赖于文件系统上的特定路径。在python中有什么方法可以做到这一点吗?
我找到doctest.testfile()函数,但它似乎是特定于doctests的。我只想得到一个文件句柄,一个特定的HTML文件,它是相对于当前模块的。
提前感谢您的建议!
要从UnitTest中的文件加载数据,如果测试数据与UnitTests在同一目录下,则有一种解决方案:
1 2 3 4 5 6 7 8 9 10 | 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): .... |
您还可以使用stringio或cstringio模拟将文件内容作为文件包含的字符串。
我猜你的任务归根结底就是为了得到当前的文件。然后通过指向HTML文件的路径扩展该路径并将其打开。
这是基于费伦的回答,但它会在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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): .... |