这个问题可能更适合超级用户--如果是这样的话,让我知道,我会改变它。
我使用zsh并经常从命令行运行pytest。一个非常常见的情况是,我需要运行一个特定的测试(或者一个类的子测试)。
前者看起来有点像
pytest test/test_foo_file.py::test_foo_function
而后者就像
pytest test/test_foo_file.py::FooClassTest::test_specific_functionality
写出完整的类和测试名称是一种痛苦,而这似乎是某种自动完成或模糊搜索的成熟工具。通过我发现的研究,我无法做到这一点--有人有什么建议吗?
如果我能说得更具体点,请告诉我。
发布于 2019-01-05 01:20:09
免责声明:我不是zsh用户,但这种方法与bash完成的自定义非常相似:
~/.zsh-completions/_pytest中,编写完成函数:
#compdef pytest _pytest_complete() { local curcontext="$curcontext“状态行排版-A opt_args compadd "$@”$( pytest --只读-q head -n -2) } _pytest_complete "$@“.zshrc以包括自定义完成,例如。
Fpath=(~/..zsh completions $fpath) autoload -U compinit compinit zstyle ':completion:*‘menu select=2重新启动外壳。现在,您应该在选项卡完成时获得单个测试选择:

这里的关键命令是
$ pytest --collect-only -q | head -n -2它收集当前目录中的测试,并列出它们的名称,以便作为命令行参数传递。
https://stackoverflow.com/questions/54044327
复制相似问题