2016-12-01 74 views
0

我努力使两个2.7.3和3.2.3单元测试一个工作单元测试两个Python 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。我应该根据运行代码的版本创建一个使用正确方法的自定义方法吗?怎么样?

回答

0

我结束了创建这个函数来替代U “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)