始终使用python unittest2
,刚刚开始迁移到pytest
。当然,我试图绘制相似之处,而我无法弄清楚的一件事是:
问题为什么Pytest不会选择我在" test"中定义的测试方法?类。
什么对我有用
# login_test.py
import pytest
from frontend.app.login.login import LoginPage
@pytest.fixture
def setup():
login = LoginPage()
return login
def test_successful_login(setup):
login = setup
login.login("incorrect username","incorrect password")
assert login.error_msg_label().text == 'Invalid Credentials'
什么对我不起作用(不起作用=测试方法没有被发现)
# login_test.py
import pytest
from frontend.app.login.login import LoginPage
class LoginTestSuite(object):
@pytest.fixture
def setup():
login = LoginPage()
return login
def test_invalid_login(self, setup):
login = setup
login.login("incorrect username","incorrect password")
assert login.error_msg_label().text == 'Invalid Credentials'
在pytest.ini
我有
# pytest.ini
[pytest]
python_files = *_test.py
python_classes = *TestSuite
# Also tried
# python_classes = *
# That does not work either
不确定调试此内容需要哪些其他信息?
感谢任何建议。
答案 0 :(得分:5)
我刚遇到类似的问题。我发现,如果你以“Test”开头命名你的类,那么pytest会把它们拿起来,否则你的测试类就不会被发现了。
这有效:
class TestClass:
def test_one(self):
assert 0
这不是:
class ClassTest:
def test_one(self):
assert 0
答案 1 :(得分:-1)
该类是否必须继承unittest.TestCase?
使用py.test,为什么要重新引入类样板? py.test的原则之一是尽量减少样板!
以下是文档中的默认约定:
http://pytest.org/latest/goodpractises.html#python-test-discovery