新的unittest包。我试图通过以下代码验证函数返回的DataFrame。即使我硬编码assert_frame_equal
的输入为相等(pd.DataFrame([0,0,0,0])
),unittest仍然失败。有人愿意解释为什么会发生这种情况吗?
import unittest
from pandas.util.testing import assert_frame_equal
class TestSplitWeight(unittest.TestCase):
def test_allZero(self):
#splitWeight(pd.DataFrame([0,0,0,0]),10)
self.assert_frame_equal(pd.DataFrame([0,0,0,0]),pd.DataFrame([0,0,0,0]))
suite = unittest.TestLoader().loadTestsFromTestCase(TestSplitWeight)
unittest.TextTestRunner(verbosity=2).run(suite)
个字符
3条答案
按热度按时间jgwigjjp1#
alecxe的回答是不完整的,你确实可以使用pandas的
assert_frame_equal()
与unittest.TestCase
,使用unittest.TestCase.addTypeEqualityFunc
字符串
4smxwvx52#
assert_frame_equal()
来自pandas.testing
包,而不是unittest.TestCase
类。替换:字符串
使用:
型
当您有
self.assert_frame_equal
时,它试图在unittest.TestCase
示例上查找assert_frame_equal
属性,由于unittest.TestCase
类上没有暴露assert_frame_equal
属性或方法,因此它引发了AttributeError
。k5hmc34c3#
如果你导入这个,问题就解决了。
字符串