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

时间:2015-08-05 09:42:29

标签: python 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

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

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

1 个答案:

答案 0 :(得分:2)

这可能更多" pythonic":

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