2016-12-01 99 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)