如何使用Python获得Maven输出(或命令行日志)?

2024-04-29 21:35:10 发布

您现在位置:Python中文网/ 问答频道 /正文

简短版本:当我们在循环中执行Popen时,是否可以逐步生成日志?你知道吗

长版本:

我有一个带命令行的bat文件:

mvn clean -Dtest=LoadTest test
pause

我在python脚本中添加了这个bat:

import os
from subprocess import Popen

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

不过,放蝙蝠和Python不好,我错了吗? 所以我测试了在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)

似乎有用。但我喜欢这原木。。就像命令一样

我试过:

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一样逐渐地出现呢?你知道吗

像bat do一样,是否可以打开CMD并设置命令行?这对我很有用。你知道吗

编辑:我也试图添加一个日志文件

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

用我的代码,它阻止了执行。我能同时做吗?你知道吗

谢谢你的帮助!你知道吗


Tags: fromtestimportcleancmdforostests
1条回答
网友
1楼 · 发布于 2024-04-29 21:35:10

更简单的是我认为:

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

我在文件中添加了所有生成结果。它像CMD一样跟踪。你知道吗

谢谢

相关问题 更多 >