How to use py.test from Python?

前端 未结 7 868
旧巷少年郎
旧巷少年郎 2020-12-30 04:38

I\'m working in a project that recently switched to the py.test unittest framework. I was used to call my tests from Eclipse, so that I can use the debugger (e.g. placing br

相关标签:
7条回答
  • 2020-12-30 05:03

    Maybe you could give a try to pycharm it has direct integration with py.test (I use it at work) and debugger runs perfectly.

    0 讨论(0)
  • 2020-12-30 05:07

    You can just run py.test --pdb if you just want to a debugger and don't need the IDE

    0 讨论(0)
  • 2020-12-30 05:08

    I have not tried with eclipse, but as was suggested in a related question, it is possible to use the --pdb command line option with py.test. Maybe it is possible to configure eclipse that way.

    However, calling the standard import pdb;pdb.set_trace() will not directly call the debugger. First it will issue an error which in turn will activate the debugger. This might or might not make things work differently.

    0 讨论(0)
  • 2020-12-30 05:09

    For me it was this:

    pytest.main(["-x", "path to test file", "args"])
    

    For example:

    import pytest
    pytest.main(["-x", "/api/test", "-vv"])
    
    0 讨论(0)
  • 2020-12-30 05:10

    I think I can now answer my own question, it's pretty simple:

    import py
    py.test.cmdline.main(args)
    

    Then I can run this module and or start it with the integrated debugger.

    args is the list of command line arguments, so for example to run only particular tests I can use something like:

    args_str = "-k test_myfavorite"
    py.test.cmdline.main(args_str.split(" "))
    
    0 讨论(0)
  • 2020-12-30 05:18

    It seems that now (py.test version 2.0+) someone can also do this :

    import pytest
    
    pytest.main('-x {0}'.format(argument))
    
    # Or
    # pytest.main(['-x', 'argument'])
    

    Ref : https://pytest.org/latest/usage.html#calling-pytest-from-python-code

    0 讨论(0)
提交回复
热议问题