在python中创建testsuite

在python中创建testsuite,python,Python,我有python脚本,比如a.py、b.py、c.py,它们位于目录a中: 我想创建一个测试套件,它将按顺序执行所有这些python脚本。 这些脚本不是单元测试。这些是常规的python脚本 请让我知道如何在测试套件中运行它们并在执行后生成报告 感谢您的时间我认为您想要的实际上是在shell上完成的,如果您在Windows上,则是在命令行上完成的。您可以循环浏览每个文件并按顺序执行每个脚本。然后,通过使用python中的open()命令,您可以让实际生成的报告在完成处理后保存到文件中 bash脚

我有python脚本,比如a.py、b.py、c.py,它们位于目录a中:

我想创建一个测试套件,它将按顺序执行所有这些python脚本。 这些脚本不是单元测试。这些是常规的python脚本

请让我知道如何在测试套件中运行它们并在执行后生成报告


感谢您的时间

我认为您想要的实际上是在shell上完成的,如果您在Windows上,则是在命令行上完成的。您可以循环浏览每个文件并按顺序执行每个脚本。然后,通过使用python中的open()命令,您可以让实际生成的报告在完成处理后保存到文件中

bash脚本的语法是

for file in /path/to/dir_with_files/*.py;
do;
python $file;
done;
它将使用程序在文件中循环,并执行以.py扩展名结尾的每个程序


现在,在使用上述脚本测试和执行所有测试和执行之后,向您自己发送一份报告。要做到这一点,你需要做两件事

  • 创建一个包含测试结果的文本文件
  • 通过电子邮件发送给自己
  • 第一是最简单的部分。为此,您只需将每个测试的结果写入一个文件,如下所示

    results = open('results.txt', 'w')
    
    results.write('results') #This is going to need to be what the results of
                             #the test are, I.E. the numbers it produces, or such
    
    results.close()
    
    您只需将其添加到每个脚本的末尾,即可创建一个文本文件,然后使用步骤2发送该文件

    第二步有点棘手。要做到这一点,您需要两件事情之一,一个模块与您使用的任何邮件客户端(gmail、comcast、yahoo等)交互,或者您自己的SMTP服务器从那里发送邮件。如果使用后者,Python有一个内置模块来处理这个问题


    现在,如果您想与邮件客户端交互,您需要下载一个模块并安装所述模块以供使用。例如,gmail有,它将你登录到他们的服务中,并通过他们的服务器发送消息。我相信大多数流行的电子邮件客户端都会有这样一个模块,所以只需谷歌搜索一下就可以了。这比方法1简单得多,因为您不需要SMTP服务器

    我认为您想要的实际上是在shell上完成的,如果您在Windows上,则是在命令行上完成的。您可以循环浏览每个文件并按顺序执行每个脚本。然后,通过使用python中的open()命令,您可以让实际生成的报告在完成处理后保存到文件中

    bash脚本的语法是

    for file in /path/to/dir_with_files/*.py;
    do;
    python $file;
    done;
    
    它将使用程序在文件中循环,并执行以.py扩展名结尾的每个程序


    现在,在使用上述脚本测试和执行所有测试和执行之后,向您自己发送一份报告。要做到这一点,你需要做两件事

  • 创建一个包含测试结果的文本文件
  • 通过电子邮件发送给自己
  • 第一是最简单的部分。为此,您只需将每个测试的结果写入一个文件,如下所示

    results = open('results.txt', 'w')
    
    results.write('results') #This is going to need to be what the results of
                             #the test are, I.E. the numbers it produces, or such
    
    results.close()
    
    您只需将其添加到每个脚本的末尾,即可创建一个文本文件,然后使用步骤2发送该文件

    第二步有点棘手。要做到这一点,您需要两件事情之一,一个模块与您使用的任何邮件客户端(gmail、comcast、yahoo等)交互,或者您自己的SMTP服务器从那里发送邮件。如果使用后者,Python有一个内置模块来处理这个问题


    现在,如果您想与邮件客户端交互,您需要下载一个模块并安装所述模块以供使用。例如,gmail有,它将你登录到他们的服务中,并通过他们的服务器发送消息。我相信大多数流行的电子邮件客户端都会有这样一个模块,所以只需谷歌搜索一下就可以了。这比方法1简单得多,因为您不需要SMTP服务器

    您还可以像这样编写其他python文件:

    import subprocess as sb # use shell cmds
    import os # list directory
    
    file_output = open("myOutput.txt", "w") # output file
    
    for f in os.listdir("path/to/the/directory"): # you can use "."
        if (f.endswith(".py")): # for each python file
            file_output.write("Execution of "+f+"\n\n") # write the name
            file_output.write(sb.getoutput("python "+f)+"\n\n") # write output
    file_output.close()
    

    您还可以像这样编写其他python文件:

    import subprocess as sb # use shell cmds
    import os # list directory
    
    file_output = open("myOutput.txt", "w") # output file
    
    for f in os.listdir("path/to/the/directory"): # you can use "."
        if (f.endswith(".py")): # for each python file
            file_output.write("Execution of "+f+"\n\n") # write the name
            file_output.write(sb.getoutput("python "+f)+"\n\n") # write output
    file_output.close()
    

    你知道,回答回答你问题的人是礼貌的。这将帮助你得到更好的回答,因为人们会从你的互动中获得更多的信息。你知道,回答回答你问题的人是礼貌的。这将帮助你获得更好的回应,因为人们会从你的互动中获得更多。嗨,马特,谢谢你的回应。这可能是一个可能的解决方案,但我也希望能够生成某种报告,并通过emailHi Matt发送给我自己,感谢您的回复。这可能是一个可能的解决方案,但我也希望能够生成某种报告,并通过EmailThank boudou发送给我自己。这是有用的,谢谢你。这很有帮助