2013-11-29 4 views
10

Ich versuche, Testklassen zu erstellen, die nicht unittestbasiert sind.py.test findet keine Tests unter einer Klasse

Diese Methode unter dieser Klasse

class ClassUnderTestTests: 

    def test_something(self): 

nicht erkannt und ausgeführt werden, wenn Sie py.test von der Kommandozeile aufrufen oder wenn Sie diesen Test in PyCharm laufen (es ist auf seinem eigenen Modul).

Dieses

def test_something(self): 

gleiche Verfahren außerhalb einer Klasse erkannt und ausgeführt werden.

Ich möchte meine Tests unter Klassen gruppieren und es sei denn, ich vermisse etwas, das ich die py.test spec zu tun, um das zu tun.

Umgebung: Windows 7, PyCharm mit py.test als Test Runner eingestellt.

+0

Sie können pytest Config auf Ihre Bedürfnisse mit einem pytest.ini an der Wurzel Ihrer Tests Verzeichnis https://pytest.org/latest/customize.html –

Antwort

19

Vereinbarungs sucht es nach

Test-Präfix Testklassen (ohne init Methode)

zB.

# content of test_class.py 
class TestClass: 
    def test_one(self): 
     x = "this" 
     assert 'h' in x 

    def test_two(self): 
     x = "hello" 
     assert hasattr(x, 'check') 

Siehe die Dokumentation here

+3

ich anpassen‘ Ich möchte hinzufügen, dass dies normale Methoden sein müssen, '@ staticmethod' wird nicht gefunden – DariusL