Pytest - 文件执行

  • 简述

    在本章中,我们将学习如何执行单个测试文件和多个测试文件。我们已经有一个测试文件test_square.py创建的。创建一个新的测试文件test_compare.py使用以下代码 -
    
    def test_greater():
       num = 100
       assert num > 100
    def test_greater_equal():
       num = 100
       assert num >= 100
    def test_less():
       num = 100
       assert num < 200
    
    现在要从所有文件(这里有 2 个文件)运行所有测试,我们需要运行以下命令 -
    
    pytest -v
    
    上面的命令将从两者运行测试test_square.pytest_compare.py. 输出将按如下方式生成 -
    
    test_compare.py::test_greater FAILED
    test_compare.py::test_greater_equal PASSED
    test_compare.py::test_less PASSED
    test_square.py::test_sqrt PASSED
    test_square.py::testsquare FAILED
    ================================================ FAILURES 
    ================================================
    ______________________________________________ test_greater 
    ______________________________________________
       def test_greater():
       num = 100
    >  assert num > 100
    E  assert 100 > 100
    test_compare.py:3: AssertionError
    _______________________________________________ testsquare 
    _______________________________________________
       def testsquare():
       num = 7
    >  assert 7*7 == 40
    E  assert (7 * 7) == 40
    test_square.py:9: AssertionError
    =================================== 2 failed, 3 passed in 0.07 seconds 
    ===================================
    
    要从特定文件执行测试,请使用以下语法 -
    
    pytest <filename> -v
    
    现在,运行以下命令 -
    
    pytest test_compare.py -v
    
    上面的命令将只从文件中执行测试test_compare.py.我们的结果将是 -
    
    test_compare.py::test_greater FAILED
    test_compare.py::test_greater_equal PASSED
    test_compare.py::test_less PASSED
    ============================================== FAILURES 
    ==============================================
    ____________________________________________ test_greater 
    ____________________________________________
       def test_greater():
       num = 100
    >  assert num > 100
    E  assert 100 > 100
    test_compare.py:3: AssertionError
    ================================= 1 failed, 2 passed in 0.04 seconds 
    =================================