Próbuję zacząć od unittest, ale mam problem z uzyskaniem setUpClass()
do pracy. Tu jest mój kodu testu ...Unittest setUpClass nie działa
import unittest
class TestRepGen(unittest.TestCase):
""" Contains methods for training data testing """
testvar = None
@classmethod
def setUpClass(cls):
cls.testvar = 6
def test_method(self):
""" Ensure data is selected """
self.assertIsNotNone(self.testvar,"self.testvar is None!")
# run tests
if __name__ == '__main__':
unittest.main()
wyświetlony komunikat o błędzie jest assert, wskazując, że self.testvar == None
, i nie został zmieniony przez setUpClass()
. Czy coś jest nie tak z moim kodem?
Otrzymuję ten sam wynik, jeśli uruchomię kod z mojego IDE (Wing) lub bezpośrednio z wiersza poleceń. Dla porównania używam Pythona 3.2.1 w Windows7.
Próbowałem twój kod na Pythonie 2.7 pod Windows 7. Działa dobrze, test przechodzi. Jeśli uruchomisz _exactly_ powyższy skrypt, to naprawdę nie działa dla Ciebie? dokumenty dla Pythona 3.3 nie wskazują żadnej zmiany w zachowaniu 'setUpClass'. – agf
Kod wklejony działa dla mnie w python27 i python 3.2.1 na Windows 7. – stderr
Czy masz powód, dla którego używasz setUpClass? Dlaczego nie po prostu użyj 'def setUp (self)'? – Bogdan