2016-03-29 36 views
0

Otomatik olarak sınama durumları oluşturmaya çalışıyorum ve bunları otomatik olarak çalıştırıyorum. piton -m unittest test_auto1 piton -m unittest test_auto1.TestAuto.test_twoOtomatik olarak sınama durumları oluşturma

Ancak, ben nosetest kullanarak bir test çalıştırmak çalışırsanız belli koşullarda başarısız: komutlarla çalıştırdığınızda

testi iyi çalışır :

1) nosetests test_auto1 - hata ile
2) nosetests test_auto1 başarısız: TestAuto - İnce Works
3) nosetests test_auto1: TestAuto.test_one - hata ile başarısız

Tek bir test çalışması ise

import unittest 

def generator(test_class, a, b): 
    def test(self): 
     self.assertEqual(a, b) 
    return test 

def add_test_methods(test_class): 
    #First element of list is variable "a", then variable "b", then name of test case that will be used as suffix. 
    test_list = [[2,3, 'one'], [5,5, 'two'], [0,0, 'three']] 
    for case in test_list: 
     test = generator(test_class, case[0], case[1]) 
     setattr(test_class, "test_%s" % case[2], test) 


class TestAuto(unittest.TestCase): 
    def setUp(self): 
     print 'Setup' 
     pass 

    def tearDown(self): 
     print 'TearDown' 
     pass 

add_test_methods(TestAuto) 

if __name__ == '__main__': 
    unittest.main(verbosity=1) 

hata:

İşte Test kodudur

====================================================================== 
ERROR: Failure: ValueError (no such test method in <class 'test_auto2.TestAuto'>: test) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\nose-1.3.1-py2.7.egg\nose\loader.py", line 516, in makeTest 
    return self._makeTest(obj, parent) 
    File "C:\Python27\lib\site-packages\nose-1.3.1-py2.7.egg\nose\loader.py", line 570, in _makeTest 
    return parent(obj.__name__) 
    File "C:\Python27\lib\unittest\case.py", line 189, in __init__ 
    (self.__class__, methodName)) 
ValueError: no such test method in <class 'test_auto2.TestAuto'>: test 

---------------------------------------------------------------------- 
Ran 1 test in 0.001s 

FAILED (errors=1) 

cevap

1

Ben büyük olasılıkla add_test_methods test olarak yorumlanır olmasıdır bakın tek sorun. Ben nottest olarak işaretlemek zaman aynı kod yukarıdaki gibi beklenen çalışır: Şimdi

from nose.tools import nottest 

@nottest 
def add_test_methods(test_class): 
.... 

Ve çalıştırmaya:

nosetests -v 
test_one (auto.TestAuto) ... FAIL 
test_three (auto.TestAuto) ... ok 
test_two (auto.TestAuto) ... ok 

====================================================================== 
FAIL: test_one (auto.TestAuto) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/home/opikalo/src/nose/auto.py", line 7, in test 
    self.assertEqual(a, b) 
AssertionError: 2 != 3 
-------------------- >> begin captured stdout << --------------------- 
Setup 

--------------------- >> end captured stdout << ---------------------- 

---------------------------------------------------------------------- 
Ran 3 tests in 0.001s 

FAILED (failures=1) 
+0

Bu benim arıyordu ama kesinlikle ben bulunmuştur şey be öğretilen ne değildir çok yardımsever ... teşekkürler –