我使用Pytest(Selenium)来执行我的功能测试。我将测试拆分为以下结构中的2个文件:
My_Positive_Tests.py
class Positive_tests:
def test_pos_1():
populate_page()
check_values()
def test_pos_2():
process_entry()
validate_result()
My_Negative_Tests.py
class Negative_tests:
def test_neg_1
populate_page()
validate_error()
断言在函数内完成(check_values,validate_result,validate_error)。 我试图找到一种从单个文件运行所有测试的方法,以便主测试文件看起来像:
My_Test_Suite.py
test_pos_1()
test_pos_2()
test_neg_1()
然后从命令行执行:
py.test --tb=short "C:\PycharmProjects\My_Project\MyTest_Suite.py" --html=report.html
有可能做这样的事吗?我一直在搜索,并且无法找到如何将调用这些测试放在一个文件中。
答案 0 :(得分:5)
您不必手动运行测试。 Pytest finds and executes them automatically:
# tests/test_positive.py
def test_pos_1():
populate_page()
check_values()
def test_pos_2():
process_entry()
validate_result()
和
# tests/test_negative.py
def test_neg_1():
populate_page()
validate_error()
如果你再运行
py.test
应该自动接听它们。
您也可以选择单个文件
py.test -k tests/test_negative.py
或单个测试
py.test -k test_neg_1
答案 1 :(得分:1)
_test.py
或以Test
结束文件名和测试。类应以$ py.test --cov=files/ tests/
目录示例:
| - 文件
| - | - stuff_in stuff
| - | - | - blah.py
| - | - example.py
|
| - 测试
| - | - stuff_in stuff
| - | - | - test_blah.py
| - | - test_example.py
在终端:$ py.test tests/
或仅$ py.test tests/
,如果您不需要代码覆盖率。测试目录文件路径必须位于当前目录路径中。或者是一个确切的文件路径
使用上述终端命令(test_
),pytest将在 tests / 目录中搜索以# imports here
def test_try_this():
assert 1 == 1
# or
class TestThis:
assert 1 == 0
# or even:
def what_test():
assert True
开头的所有文件。该文件也是如此。
test_example.py
def foo(np.ndarray[np.complex64_t, ndim=1] arr, int arr_sz):
return cmylib.foo(<cmylib.cmplx64 *>&arr[0], arr_sz)
答案 2 :(得分:0)
您需要更改班级名称
class Positive_tests: to--> class Test_Positive:
班级名称也应该以&#34; Test&#34;为了被Pytest发现。如果你不想使用&#34;测试&#34;在您的班级名称前面,您也可以配置官方文档here