Jongwook Choi 2dc9c95fe9 refactor(pytest): PytestNeotestAdapter (#24)
Having `NeotestResultCollector` (a pytest plugin) as a inner local
class would make the code a bit difficult to read due to quite much
indentation. This commit does refactoring on NeotestResultCollector
to make it a module-level class with a reference to NeotestAdapter.

This refactoring would make easier adding more pytest plugins
(e.g., debugger integration) in the future.

There should be no changes in behaviors.
2022-10-29 13:23:40 +01:00
2022-01-02 23:15:23 +00:00
2022-01-02 23:15:23 +00:00
2022-07-25 21:23:34 +01:00
2022-01-02 23:15:23 +00:00
2022-01-02 23:15:23 +00:00

neotest-python

Neotest adapter for python. Supports Pytest and unittest test files.

Requires nvim-treesitter and the parser for python.

require("neotest").setup({
  adapters = {
    require("neotest-python")
  }
})

You can optionally supply configuration settings:

require("neotest").setup({
  adapters = {
    require("neotest-python")({
        -- Extra arguments for nvim-dap configuration
        -- See https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for values
        dap = { justMyCode = false },
        -- Command line arguments for runner
        -- Can also be a function to return dynamic values
        args = {"--log-level", "DEBUG"},
        -- Runner to use. Will use pytest if available by default.
        -- Can be a function to return dynamic value.
        runner = "pytest",
        -- Custom python path for the runner.
        -- Can be a string or a list of strings.
        -- Can also be a function to return dynamic value.
        -- If not provided, the path will be inferred by checking for 
        -- virtual envs in the local directory and for Pipenev/Poetry configs
        python = ".venv/bin/python"
        -- Returns if a given file path is a test file.
        -- NB: This function is called a lot so don't perform any heavy tasks within it.
        is_test_file = function(file_path)
          ...
        end,
        
    })
  }
})

Description
No description provided
Readme 138 KiB
Languages
Python 60.7%
Lua 37.7%
Shell 1.6%