什么是python中的中止陷阱?

时间:2015-05-30 22:34:21

标签: python argparse nose

直接运行我的脚本,按预期工作。用鼻子测试主要功能会导致中止陷阱。

被调用的函数:

@retry(wait_exponential_multiplier=500, wait_exponential_max=10000, stop_max_attempt_number=7)
def shell_command(**kwargs):
    proc = subprocess.Popen(kwargs['shell_argument'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = proc.communicate()
    return stdout

测试:

from nose.tools import raises
@raises(Exception)
def test_shell_fail():
    kwargs = {}
    kwargs['shell_argument'] = ['ls', 'filedoesnotexist']
    myclass.shell_command(**kwargs)

我正在用鼻子测试我的应用程序,并收到以下错误:

Fatal Python error: no mem for sys.argv
ValueError: character U+6573552f is not in range [U+0000; U+10ffff]
Abort trap: 6

那么,什么是中止陷阱?为什么我没有得到堆栈跟踪?

束手无策。

0 个答案:

没有答案