मैंने एक पैकेज (http://github.com/anntzer/parsedcmd) लिखा है जो Python2 और Python3 दोनों के साथ चलता है। हालांकि, मुझे Python2 और Python3 के लिए अलग (py.test) यूनिट परीक्षण लिखना पड़ा (मुख्य रूप से क्योंकि मैं विशेष रूप से कीवर्ड-केवल तर्कों में पाइथन 3 की अतिरिक्त विशेषताओं का परीक्षण करना चाहता हूं), इसलिए मेरे पास test_py2.py
और test_py3.py
test
उप-पैकेज में है । अब, अगर मैं दौड़ता हूं, तो py.test2 mypkg
, test_py2
गुजरता है, लेकिन test_py3
SyntaxError
के साथ विफल रहता है। इसी तरह, py.test3 mypkg
के लिए, test_py3
गुजरता है लेकिन test_py2
विफल रहता है (हालांकि यह एक काम कर सकता है, यह StringIO
का एक मुद्दा है जो io
पर स्थानांतरित हो गया है)।py.test चल रहा है Python2 और Python3
मैं test
सबपैकेज डिज़ाइन कर सकते हैं ताकि import mypkg.test
केवल परीक्षण के उचित संस्करण का आयात करता है, लेकिन जाहिरा तौर py.test परवाह नहीं करता है - यह सिर्फ दो test_*
मिलान फ़ाइलों को देखता है और उन दोनों में सभी परीक्षणों पकड़ लेता है, अनदेखी क्या __init__.py
उसे आयात करने के लिए कहता है।
तो अभी मुझे py.test2 mypkg/test/test_py2.py
और py.test3 mypkg/test/test_py3.py
दोनों करना है। क्या पूरी चीज को स्थापित करने का कोई तरीका है ताकि py.test2 mypkg
और py.test3 mypkg
"बस काम करें"?
धन्यवाद।