是什么让py.test调用根目录中的conftest.py?

时间:2016-01-22 06:30:36

标签: python pytest

我有以下目录结构:

class QC {
    int n;
    boolean valueSet = false;

    synchronized int get() {
        while (!valueSet) {                     // if -> while
            try {
                wait();
            } catch (InterruptedException e) {
                System.out.println("InterruptedException caught");
            }
        }
        System.out.println("Got: " + n);
        valueSet = false;
        notifyAll();                            // notify -> notifyAll
        return n;
    }

    synchronized void put(int n) {
        while (valueSet) {                      // if -> while
            try {
                wait();
            } catch (InterruptedException e) {
                System.out.println("InterruptedException caught");
            }
        }
        this.n = n;
        valueSet = true;
        System.out.println("Put: " + n);
        notifyAll();                            // notify -> notifyAll
    }
}

如果我在dev目录中运行py.test,则会调用根目录中的conftest.py。我一直无法弄明白为什么。我没有设置PYTHONPATH环境变量。

1 个答案:

答案 0 :(得分:0)

来自https://docs.pytest.org/en/latest/writing_plugins.html

  

通过加载命令行调用推断的所有conftest.py文件:

     
      
  • 如果未指定测试路径,则使用当前目录作为测试路径
  •   
  • 如果存在,则相对于第一个测试路径的目录部分加载conftest.py和test * / conftest.py。
  •   
     

请注意,pytest在工具启动时没有在更深的嵌套子目录中找到conftest.py文件。将conftest.py文件保存在顶级测试或项目根目录中通常是个好主意。

如果您没有为我指定测试路径,看起来是从根目录加载conftest.py的文档行为。