如何在python中从文件加载数据,用于单元测试?

2024-05-20 00:54:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个专门的HTML解析器,我想用我下载的几个示例网页进行单元测试。

在Java中,我使用类资源将数据加载到单元测试中,而不必依赖它们位于文件系统的特定路径。在Python中有这样做的方法吗?

我找到了doctest.testfile()函数,但这似乎是doctests特有的。我只想得到一个文件句柄,一个特定的HTML文件,它是相对于当前模块的。

提前谢谢你的建议!


Tags: 文件数据方法函数路径解析器网页示例
3条回答

要从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”:

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):
       ....

相关问题 更多 >