python 2和3的unittest

时间:2016-12-01 19:13:33

标签: python python-2.7 python-unittest python-3.2

我努力在2.7.3和3.2.3(ubuntu 12.04附带的版本)中进行单元测试工作

基本上问题是:

  • 我需要assertEqual具有unicode的字符串,因此python2使用u' asdf'和python 3.2没有这样的东西(我相信它们在3.3中被重新引入)。有没有一种方法可以将assertEqual的字符串参数表示为比较等于u'asdf'并在python 3.2中编译?

  • 我需要assertRegex几个输出,但在python2.7中,它被称为assertRegexpMatched。我应该根据运行代码的版本创建使用正确方法的自定义方法吗?怎么样?

1 个答案:

答案 0 :(得分:0)

我最终创建了这个函数来替换你的“asdf”:

def u(s):
    if sys.version_info[0]==3:
        return s
    else:
        return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape")

在我的测试类中添加此方法:

def assertRegexp(self, a, b):
    if sys.version_info >= (3,2):
        return self.assertRegex(a, b)
    else:
        return self.assertRegexpMatches(a, b)