如何检测我的 python script/code 是否来自 python 单元测试?

How can I detect if my python script/code was ran from a python unittest?

我正在寻找一种优雅的方法来检测我的脚本是 运行 来自单元测试工具还是由正常执行触发的。到目前为止,我正在查看 'unittest.py' 字符串的调用堆栈。但是我想知道是否有更 pythonic 的方法来实现相同的结果。

def hasRunFromUnitTest():
    intest = False
    for path, _, _, _ in traceback.extract_stack():
        if 'unittest.py' in path:
            intest = True
            break
    return intest

同意下面的评论,这显然是一个 hack,但我使用的是复杂的技术分层,我并不总是能够访问下面的底层 API/Framework 代码。在这种特殊情况下,我有一个 .Net 应用程序启动一个自定义 python 环境,该环境用于构建 .Net UI。有时底层的 .NET 进程在应用程序退出时永远不会被杀死,我需要手动杀死它,这也有杀死我的单元测试工具的副作用。

理想情况下,我会在 unittest class.

中寻找某种 属性 或常量

这可能更多 "pythonic":

def hasRunFromUnitTest():
    return 'unittest' in sys.modules