Von Linux Mint bash Typ IPytest keine Tests liefen
$ pytest tests/parser_test.py
=============================== test session starts py ================================
platform linux2 -- Python 2.7.14, pytest-3.2.1, py-1.4.34, pluggy-0.4.0
rootdir: /home/rat/Projects/ex48, inifile:
collected 0 items
=========================== no tests ran in 0.00 seconds ===========================
und doch sagt, es gibt es "kein Test lief". Ich habe jeden Funktionstest in Stufen durchgeführt und es hat eine Weile funktioniert, aber ich habe festgestellt, dass mit jeder zusätzlichen Funktion pytest weniger Tests aufnahm. Ich habe ein komisches Gefühl, dass es mit meinem Test-Code ist, aber ich bin mir nicht sicher, was ich falsch mache oder gar was zu suchen. Ich habe versucht, einige der Variablen von word_list_one zu wl_one zu ändern, um zu sehen, ob das das Problem ohne Erfolg war. Ich überprüfte auch ähnliche Fragen, konnte aber keine Antwort finden. Ich muss zugeben, dies ist meine erste Sprache, die ich gelernt habe, also bin ich sehr neu in diesem ganzen Test-Ding. Hier ist mein Projektbaum . ├── ex48 │ ├── __init__.py │ ├── __init__.pyc │ ├── lexicon.py │ ├── parser.py │ └── parser.pyc ├── README.md ├── setup.py └── tests ├── __init__.py ├── __init__.pyc ├── lexicon_tests.py ├── parser_test.py └── __pycache__ ├── parser_test.cpython-27-PYTEST.pyc └── parser_tests.cpython-27-PYTEST.pyc
import pytest
from ex48 import parser
from ex48.parser import Sentence
# test parse_sentence
@pytest.fixture()
def test_sentence():
sentence = Sentence.parse_sentence([("noun","player"),("verb", "go"),("noun", "bear")])
return sentence
def test_peek():
result = test_sentence()
assert Sentence.peek(result) != None
Nach dem Entfernen @classmethod, richtige Antwort von Hansaplast, brauchte ich die test_sentence zu ändern und hinzugefügt test_sentence (Selbst-) zu `` `as1 per this answer:
@pytest.fixture()
def test_sentence(self):
sentence = Sentence()
return sentence.parse_sentence([("noun","player"),("verb", "go"),("noun", "bear")])
jedoch jetzt habe ich ein Problem mit der pytest Halterung
$ pytest tests/parser_test.py
============================== ERRORS ====================================
___________________ ERROR at setup of test_peek __________________________
file /home/rat/Projects/ex48/tests/parser_test.py, line 13
def test_peek(test_sentence):
file /home/rat/Projects/ex48/tests/parser_test.py, line 7
@pytest.fixture()
def test_sentence(self):
E fixture 'self' not found
> available fixtures: cache, capfd, capsys, doctest_namespace,
monkeypatch, pytestconfig, record_xml_property, recwarn,
test_sentence, tmpdir, tmpdir_factory
> use 'pytest --fixtures [testpath]' for help on them.
So habe ich getippt $ pytest --fixtures Tests/parser_test.py und erhielt eine Vielzahl von Informationen, den Sinn für mich nicht, und dies macht:
------------- fixtures defined from tests.parser_test -------------------
test_sentence
tests/parser_test.py:8: no docstring available
könnte einfacher sein, zu löschen und neu beginnen, ohne @ pytest.fixtures = ^/
Keine Screenshots, insbesondere von Textbefehlen. –
Wo ist die tatsächliche Ausgabe? Ich wette, es gibt interessante Nachrichten, die Sie nicht erwähnen möchten. –
Bitte erläutern Sie den '@ classmethod'-Dekorator außerhalb einer Klasse. –