2016-04-08 6 views
1

ファイルconftest.pyを使用してフィクスチャを使用すると、os.getcwd()を経由するディレクトリが正しくありません! \プログラムファイル\のJava \ jdk1.8.0_60 \ JRE \私は、コマンドラインからテストを実行する場合、ビン は、すべてが正常に動作する 例:PyTest conftest.pyがPyCharmのディレクトリos.getcwd()を間違って表示します

conftest.py

import os 
import pytest 

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

私はCを得ますPyCharm

私はCを取得:\プログラムファイル\のJava \ jdk1.8.0_60 \ JRE \ binに

Incorrect directory

CMD

I取得C:\ Pythonの\テスト\スクリプト\例

Correct directory

test_simple.py

# coding=utf-8 
import json 
import os 

def test_simple(curdir): 
    print curdir 

なぜこれが起こっていますか?

答えて

0

私は決してWindowsでPyCharmを実行したことはありません。Windowsはよくわかりませんが、PyCharm(Javaアプリケーション)は実行時にJREのバイナリディレクトリを現在のディレクトリに設定します。 PyCharmによって生成されたプロセス(Pythonインタープリタなど)はこれを継承します。

私はあなたが見ているものが必ずしも奇妙だとは必ずしも思っていません。

現在のディレクトリを特定のものにする必要がある場合は、おそらくos.chdir()を使用することをお勧めします。

+0

感謝。 これが見つかった。 – MissiaL

0

解決策が見つかりました。返信のための代わりに

os.getcwd() 

使用

os.path.dirname(os.path.abspath(__file__)) 
関連する問題