Tel entegrasyon testi paketi üzerinden Nose kullanmak için bir isteğim var. Ancak, bu testlerin bazılarının yürütme sırası önemlidir.Birim test yürütme sırasını belirtmek için bir Burun eklentisi
dedi ki, ben yürütüldüğünde istiyorum ben sipariş ile bir test süslemek için birlikte hızlı bir eklenti atmak düşündüm: https://gist.github.com/Redsz/5736166
def Foo(unittest.TestCase):
@step(number=1)
def test_foo(self):
pass
@step(number=2)
def test_boo(self):
pass
Düşündüğümden eklentileri inşa gözden geçirme konularını itibaren ben geçersiz kılma sadece could loadTestsFromTestCase
ve dekore 'adım numarası' .:
def loadTestsFromTestCase(self, cls):
"""
Return tests in this test case class. Ordered by the step definitions.
"""
l = loader.TestLoader()
tmp = l.loadTestsFromTestCase(cls)
test_order = []
for test in tmp._tests:
order = test.test._testMethodName
func = getattr(cls, test.test._testMethodName)
if hasattr(func, 'number'):
order = getattr(func, 'number')
test_order.append((test, order))
test_order.sort(key=lambda tup: tup[1])
tmp._tests = (t[0] for t in test_order)
return tmp
Bu yöntem testleri burun tarafından yürütülmektedir ancak onlar bu sırada idam edilmiyor, ben arzu sırayla testleri dönüyor tarafından testleri sipariş ?
Belki farklı bir konuma sipariş bu kavramı taşımak gerekir?
UPDATE: Yaptığım yoruma göre eklenti aslında beklendiği gibi çalışıyor. Pycharm test muhabirine güvenmem yanlıştı. Testler beklendiği gibi çalışıyor. Anladığım soruyu çözmektense onu bırakacağım. documentation itibaren
Eh, bu soruyu göz ardı edilebilir sanırım eklenti beklendiği gibi çalışıyor ... Ben beyin osuruk vardı. Ancak, testler gerçekte yürütme sırasında beklendiği gibi sipariş ediliyor. – Jesse
Kodunuzu bilmediğimden, ama otomatik test konusundaki tecrübelerime dayanarak, çok fazla bir şey düşünmek istemiyorum, en iyi uzun vadeli çözümün testlerinizi yeniden yapılandırmaya benzer şekilde yeniden yapılandırması olasıdır. Artık birbirlerine bağımlılık yok. Kurulum işlevlerinde veya gerçekten bağımlı olan olayların dizileri için gerekli önkoşulları tekrarlamayı, bunları tek bir sınamada birleştirmeyi düşünebilirsiniz. Ayrıca, bir birim testi olarak, genellikle işlevin ayrı "birimleri" ni test etmeniz ve mümkün olan her yerde harici IO'dan kaçınmanız gerektiğini unutmayın. – GrandOpener