我已经写了一个专门的HTML解析器,我想用我下载的几个示例网页对它进行单元测试。
在Java中,我使用类资源将数据加载到单元测试中,而不必依赖于它们位于文件系统上的特定路径。有没有办法在Python中做到这一点?
我找到了doctest.testfile()函数,但它似乎是特定于doctests的。我只想获得一个文件句柄,指向一个特定的HTML文件,它是相对于当前模块的。
提前感谢您的任何建议!
发布于 2011-11-08 19:36:29
要从unittest中的文件加载数据,如果testdata与unittest位于相同的目录中,则有一种解决方案:
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):
....
发布于 2019-01-30 23:43:58
这是基于Ferran的回答,但它在未关闭文件期间关闭文件以避免'ResourceWarning: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):
....
发布于 2011-11-08 18:26:53
还可以使用StringIO或cStringIO将包含文件内容的字符串模拟为文件。
https://stackoverflow.com/questions/8047736
复制相似问题