PyTest conftest.py错误地在PyCharm中显示目录os.getcwd()

时间:2016-04-08 18:12:20

标签: python pycharm pytest

当我使用文件conftest.py使用fixture时,我通过os.getcwd()获得的目录不正确!我得到C:\ Program Files \ Java \ jdk1.8.0_60 \ jre \ bin 如果我从命令行运行测试,一切正常 例如:

conftest.py

import os
import pytest

@pytest.fixture()
def curdir():
    directory = os.getcwd()
    print directory
    return directory

PyCharm

我得到C:\ Program Files \ Java \ jdk1.8.0_60 \ jre \ bin

Incorrect directory

CMD

我得到C:\ python \ testing \ scripts \ example

Correct directory

test_simple.py

# coding=utf-8
import json
import os

def test_simple(curdir):
    print curdir

为什么会这样?

2 个答案:

答案 0 :(得分:0)

我从来没有在Windows上运行PyCharm而且我根本不了解Windows,但我的猜测是:PyCharm(Java应用程序)将JRE的二进制目录设置为运行时的当前目录,以及任何PyCharm产生的进程(例如Python解释器)只是继承了这个。

所以我不一定认为你所看到的一切都很奇怪。

如果您需要将当前目录设为特定目录,则可能最好使用os.chdir()强制它。

答案 1 :(得分:0)

我找到了解决方案。相反

os.getcwd() 

使用

os.path.dirname(os.path.abspath(__file__))