直接运行我的脚本,按预期工作。用鼻子测试主要功能会导致中止陷阱。
被调用的函数:
@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
那么,什么是中止陷阱?为什么我没有得到堆栈跟踪?
束手无策。