相关疑难解决方法(0)

如何查看pytest运行期间创建的正常打印输出?

有时我想在我的代码中插入一些打印语句,看看在我练习时会打印出来的内容.我通常的"锻炼"方法是使用现有的pytest测试.但是当我运行这些时,我似乎无法看到任何标准输出(至少来自PyCharm,我的IDE).

在pytest运行期间有没有一种简单的方法来查看标准输出?

python logging pytest output

320
推荐指数
12
解决办法
11万
查看次数

在Python的调用者线程中捕获线程的异常

我对Python和多线程编程很新.基本上,我有一个脚本,将文件复制到另一个位置.我希望将它放在另一个线程中,以便我可以输出....以指示脚本仍在运行.

我遇到的问题是,如果文件无法复制,它将引发异常.如果在主线程中运行,这是可以的; 但是,具有以下代码不起作用:

try:
    threadClass = TheThread(param1, param2, etc.)
    threadClass.start()   ##### **Exception takes place here**
except:
    print "Caught an exception"
Run Code Online (Sandbox Code Playgroud)

在线程类本身,我试图重新抛出异常,但它不起作用.我看到这里的人问类似的问题,但他们似乎都在做一些比我想做的更具体的事情(而且我不太了解提供的解决方案).我见过人们提到使用它sys.exc_info(),但我不知道在哪里或如何使用它.

非常感谢所有帮助!

编辑:线程类的代码如下:

class TheThread(threading.Thread):
    def __init__(self, sourceFolder, destFolder):
        threading.Thread.__init__(self)
        self.sourceFolder = sourceFolder
        self.destFolder = destFolder

    def run(self):
        try:
           shul.copytree(self.sourceFolder, self.destFolder)
        except:
           raise
Run Code Online (Sandbox Code Playgroud)

python multithreading exception-handling exception

178
推荐指数
10
解决办法
15万
查看次数

pytest在单独的线程中失败

我们正在为我们的集成测试调整pytest,并尝试使用pytest fixture来使用单独的线程生成一些后台测试环境监视.

当我们使用fixture时,监视器线程在启动时没有启动问题,但是如果其中一个后台监视器线程检测到问题,我还没有找到pytest使主测试失败的方法.

有谁知道在pytest中实现这个的好方法?是否有任何钩子我们可以在主pytest线程中使用钩子来捕获在我们的一个后台监视器线程中调用的pytest.fail?

谢谢!

python multithreading integration-testing pytest

6
推荐指数
1
解决办法
530
查看次数