2016-07-22 21 views
0

私はPythonファイルを持っています。それはscript1.pyと呼ばせてください。私はscript1_test.pyと呼ばれる単体テスト(unittestを使用して)を記述しようとしています。 script1はコマンドラインから呼び出され、いくつかの引数を取ります。スクリプト1が実行されると、それはで始まる:ユニットテストにシステム引数を必要とするPythonスクリプトをインポートする

if __name__ == "__main__" and len(sys.argv) == 6: 
    func1() 
else 
    print "Wrong number of arguments" 
    sys.exit(1) 

私は、コードの本体のSCRIPT1 独立した範囲内(ここでは関数func1と呼ばれる)関数を実行し、テストしようとしています。しかし、私がそうするとき、私はimportフェーズ中にsys.exitをmainから続けます。このエラーを起こすことなくテストを実行するにはどうすればよいですか?

答えて

1

スクリプトをインポートするとき、__name__はmainと等しくないので、elseブロックを呼び出しています。代わりに、ifブロックをネストする必要があります。

if __name__ == "__main__": 
    if len(sys.argv) == 6: 
     func1() 
    else: 
     print "Wrong number of arguments" 
     sys.exit(1) 
関連する問題