如何检测我的python脚本/代码是否从python单元测试运行?

如何检测我的python脚本/代码是否从python单元测试运行?,python,python-unittest,Python,Python Unittest,我正在寻找一种优雅的方法来检测我的脚本是从unittest线束运行还是由正常执行触发的。到目前为止,我正在研究'unittest.py'字符串的调用堆栈。然而,我想知道是否有一种更像蟒蛇的方法来达到同样的效果 def hasRunFromUnitTest(): intest = False for path, _, _, _ in traceback.extract_stack(): if 'unittest.py' in path: in

我正在寻找一种优雅的方法来检测我的脚本是从unittest线束运行还是由正常执行触发的。到目前为止,我正在研究
'unittest.py'
字符串的调用堆栈。然而,我想知道是否有一种更像蟒蛇的方法来达到同样的效果

def hasRunFromUnitTest():
    intest = False
    for path, _, _, _ in traceback.extract_stack():
        if 'unittest.py' in path:
            intest = True
            break
    return intest
同意下面的评论这显然是一个黑客行为,但我使用的是复杂的技术分层,我并不总是能够访问底层的API/框架代码。在本例中,我有一个.Net应用程序启动了一个自定义python环境,用于构建.Net UI。有时,底层.NET进程在应用程序退出时从未终止,我需要手动终止它,这也会导致终止我的单元测试工具的副作用

理想情况下,我会在
unittest
类中寻找某种属性或常量。

这可能更“pythonic”:


这似乎。。。有点愚蠢。你为什么认为你需要这个?如果代码在测试中表现不同,那么测试的意义何在?!你为什么要这么做?检查您的脚本是否是从unittest运行的一开始并不优雅(IMHO)。如果你真的想这样做,我认为一个类似于你的解决方案就是这样做的。
def hasRunFromUnitTest():
    return 'unittest' in sys.modules