2016-12-01 2 views
0

ショートバージョン:ループでPopenを行うと徐々にログを取得できますか?Maven出力(またはコマンドラインログ)をPythonでどのように使うことができますか?

ロングバージョン:

私は、コマンドラインでbatファイル持っていた:

mvn clean -Dtest=LoadTest test 
pause 

を私はPythonスクリプトでこのバットを追加しました:

import os 
from subprocess import Popen 

os.chdir("../../../../tests") 
for i in range(0,3): 
    Popen(script.bat) 

はしかし、そうではありませんバットとパイソンを入れていいのですが、間違っていますか? だから、私はPythonスクリプトでMavenのコマンドを追加するためにテスト:

import os 
from subprocess import Popen 

os.chdir("../../../../tests") 
for i in range(0,3): 
    cmd= "mvn clean -Dtest=LoadTest test"+str(i) 
    Popen(cmd, shell=True) 

が働いているようです。しかし、私は、私が試したCMD

のような...ログを好きwhould:私のコマンドは、私は負荷テストを行うことができないので、上にあるときに

import os 
from subprocess import Popen, PIPE, STDOUT 

os.chdir("../../../../tests") 
for i in range(0,3): 
    cmd= "mvn clean -Dtest=LoadTest test"+str(i) 
    Popen(cmd, shell=True) 
    p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT) 
    output = p.stdout.read() 
    print (output) 

しかし、それはログを印刷します。 ログを徐々にCMDに似せることは可能ですか?

バットと同じように、CMDを開いてコマンドラインを設定できますか?これは私の役に立つかもしれません。

編集:私は私のコードでは、あまりにも

cmd= "clean -Dtest=LoadTest test"+str(i) > LogTest.txt" 

ログファイルを追加しようとしました、それが実行をブロックしています。パラレルでもできますか?

ありがとうございました!

答えて

0

私が思ったことを、より簡単だった:

cmd= "clean -Dtest=LoadTest test"+str(i) > LogTest"+str(i)+".txt" 

私は、ファイル内のすべての私のビルドresulを追加しました。 CMDのようにすべてをトレースします。

ありがとうございました

関連する問題