2017-01-31 6 views
1

私たちは、テストを実行するサーバなどの情報を前もってハードコード化したPythonで単体テストを実行します。代わりに、私はコマンドライン引数を介してテストにその情報を渡したいと思います。問題は、Python単体テストフレームワークを使用しているため、自分のカスタムパラメータを単一のパラメータとして呼び出すことができず、utrunner.pyがキャッチします。このパラメータは、テストが実行されるテストについてのパラメータであることを前提としています。IDEAのPython 3.xでユニットテストのパラメータを使用する

だから私はテストスイートを起動するには、このコマンドを送信IDEAから実行している:

C:\Users\glenp\AppData\Local\Programs\Python\Python36-32\python.exe C:\Users\glenp\.IntelliJIdea2016.3\config\plugins\python\helpers\pycharm\utrunner.py C:\Root\svn\trunk\src\test\python\test.py "server=deathStar language=klingon" true 

これはprint(sys.argv)から私に戻って読みますパラメータです:

['C:\\Users\\glenp\\.IntelliJIdea2016.3\\config\\plugins\\python\\helpers\\pycharm\\utrunner.py', 'C:\\Root\\svn\\trunk\\src\\test\\python\\schedulePollTest.py', 'server=deathStar language=klingon', 'true'] 

注、私は実際に私自身のテストを呼び出すのではなく、私はutrunner.pyをテストの引数の1つと呼んでいます。

FileNotFoundエラー:FileNotFoundError: [Errno 2] No such file or directory: 'server=deathStar language=klingon'が表示され、実行する前にテストが終了します。

if __name__ == "__main__": 
    unittest.main() 

またはこの:

は、私はどちらかこれを変更する必要があると思う

class testThatWontRun(unittest.TestCase): 

私はエラーを投げているimp.pyを、修正することもできますが、私は上にあるように起こりますPythonの中核となる機能を変更することは、まったくうまく機能しません。

したがって、utrunner.py(とimp.py)がこれらのパラメータを無視する方法で、私の引数をフレーズする方法はありますか?

答えて

0

はい、utrunner.pyにパラメータを無視させる方法があります:無視するパラメータの前に - を付けます。

ので、サーバ=デス・スターは、--server =デス・スター

はあなたにゴム製のアヒルをありがとう:)

なり
関連する問題