2017-08-01 2 views
2

Sphinxにautdocを無効にせずにsetup_testを実行しないように指示する方法はありますか? ここに私のpythonのコードです:Sphinxにautodocを無効にせずにモジュールを実行しないように指示する方法はありますか?

def setup_test(): 
    ......get some stuff done here.... 
    return path, test 

path, test = setup_test() 

@pytest.mark.parametrize('asd', path, ids=test) 
def test_dsf(asd): 
    runpath = os.path.dirname(asd) 
    assert runpath 

答えて

2
import sys 
if 'sphinx' not in sys.modules: 
    path, test = setup_test() 

そしてpathtest

if 'sphinx' not in sys.modules: 
    @pytest.mark.parametrize('asd', path, ids=test) 
    def test_dsf(asd): 
     runpath = os.path.dirname(asd) 
     assert runpath 

それともスフィンクスがモジュールにため

if 'sphinx' in sys.modules: 
    path, test = '/', 'test' 
else: 
    path, test = setup_test() 
+0

感謝をインポートするように偽の値を割り当てるを使用してテストを保護私の質問に行きます。私は "make html"を実行することができないので、これが私の問題を解決するかどうかはわかりません - "Make HTML"を実行すると、私のスニペットの8行目に 'NameError:name' path 'が定義されていません。 – nss

+0

私は答えを更新しました。 – phd

+0

もう一度、これは私が 'make html'を実行中に取得するエラーメッセージを解決します。しかし、生成された.htmlファイルは、test_dsfのソースコードを出力できません。 SPHINXは関数外の呼び出しをサポートしていませんか? .rstファイルに見つからないものがありますか?この質問をする背景には、 'make html'をトリガーするときにsetup_test()がホストマシン上で実行されないようにすることがあります。 – nss

関連する問題