Pytest-从单个fi运行多个测试

2024-04-27 22:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Pytest(Selenium)来执行功能测试。我将测试分成以下结构的两个文件:

我的阳性测试.py

class Positive_tests:


  def test_pos_1():
    populate_page()
    check_values()

  def test_pos_2():
    process_entry()
    validate_result()

我的阴性测试.py

class Negative_tests:
  def test_neg_1
    populate_page()
    validate_error()

断言在函数中完成(check_values、validate_result、validate_error)。 我试图找到一种方法从一个文件运行所有测试,以便主测试文件看起来像:

我的测试套件.py

test_pos_1() 
test_pos_2()
test_neg_1()

然后从命令行执行:

py.test --tb=short "C:\PycharmProjects\My_Project\MyTest_Suite.py" --html=report.html

有可能做这样的事吗?我一直在搜索,但还没有找到如何将对这些测试的调用放在一个文件中。


Tags: 文件pypostestdefcheckpagetests
3条回答

test__test.py结尾开始文件名和测试。类应该以Test开头

目录示例:
|--文件
|--|--材料中的材料
|--|--|--单调乏味
|--|--示例.py
|
|--测试
|--|--材料中的材料
|--|--|--测试时间
|--|--测试示例.py

在终端:$ py.test --cov=files/ tests/或者只要$ py.test tests/如果你不需要代码覆盖。测试目录文件路径必须在当前目录路径中。或者一个确切的文件路径

使用上面的终端命令($ py.test tests/),pytest将在tests/目录中搜索以test_开头的所有文件。文件也是如此。

测试示例.py

# imports here

def test_try_this():   
    assert 1 == 1
# or
class TestThis:
    assert 1 == 0
# or even:
def what_test():
    assert True

您不必手动运行测试。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

你需要更改类名

class Positive_tests: to--> class Test_Positive: 

类名还应该以“Test”开头,以便由Pytest发现。如果不想在类名前面使用“Test”,也可以配置它,官方文档here

相关问题 更多 >