我想在 python2 和 python3 版本中提供六个兼容我的代码。我从网上得到了这个例子,但没有得到更多的资源来在线得到这六个例子。在下面的代码中,我不明白为什么他们为测试用例创建了类并编写了这一行
class SampleTests(unittest.TestCase):
在 main 里面,他们是怎么称呼这个班级的SampleTests
?以及如何unittest.main()
在 main 内部调用类?
请帮助我。如果可能的话,请给出一些六模块迁移的示例。
import six
from six.moves import reduce
import unittest
def multiply_values(val1, val2):
return val1*val2
def add_values(val1, val2):
return val1+val2
class SampleTests(unittest.TestCase):
def test_sets_equal(self):
setValue1 = reduce(multiply_values, [1,2])
setValue2 = reduce(add_values, [1,2])
six.assertCountEqual(self, [2,3], [setValue1,setValue2])
if __name__ == '__main__':
unittest.main()
在您的示例six
中用于两件事:
reduce
已在 Python 3 中删除并替换为functools.reduce
sosix
为它提供了一个方便的“别名”,因此您可以reduce
在 2 和 3 中调用。assertCountEqual
是 Python 3 中 unittest 的一部分,所以six
这里提供了它自己的 Python 2 实现。该six
模块的最佳文档可在此处获得:https : //six.readthedocs.io/
注意:Python 2 现在已弃用,您不应将其用于新项目。six
将帮助您编写适用于 Python 的两个版本的代码,但如果您没有充分的理由支持 Python 2,最好编写仅适用于 Python 3 的代码。2to3 工具可以帮助您将 Python 2 代码转换为 Python 3。
为什么他们为测试用例创建类并编写了这一行 class SampleTests(unittest.TestCase): 和 Inside main,他们如何调用类 SampleTests
这不是真正的six
具体问题,这是unittest
模块在 Python 2 和 3 上的工作方式,有关详细信息,请参阅https://docs.python.org/3/library/unittest.html。
TL; DR版本:unittest.main()
将自动运行的文件和测试情况下,所有的测试案例被定义为一个函数与名称开始test_
在一个unittest.TestCase
类中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句