<p>好问题。在</p>
<h2>找不到命令行开关来强制完成打印输出</h2>
<p>在搜索和测试<code>py.test</code>的各种命令行选项时,我没有找到任何方法来获得完整的
字典打印输出。在</p>
<p>这可能是有充分理由的,无休止的打印输出不是很有用。在</p>
<h2>使用assert message获取您自己的打印输出</h2>
<p>虽然<code>py.test</code>在解释错误的有用消息方面做得很好,但有时您必须自己动手。在</p>
<p><code>assert</code>具有带消息的可选参数。如果您使用它,<code>py.test</code>打印输出将被您放入该消息中的内容替换。在</p>
<p>拥有文件<code>test_it.py</code>:</p>
<pre><code>def test_it():
dct = {str(i): i for i in xrange(100)}
assert dct == "Hi"
def test_it2():
dct = {str(i): i for i in xrange(100)}
assert dct == "Hi", str(dct) + " shall sound friendly"
</code></pre>
<p>你可以试试:</p>
^{pr2}$
<p>你会看到:</p>
<pre><code>$ py.test
========================================== test session starts ===========================================
platform linux2 Python 2.7.6 py-1.4.20 pytest-2.5.2
collected 2 items
test_it.py FF
================================================ FAILURES ================================================
________________________________________________ test_it _________________________________________________
def test_it():
dct = {str(i): i for i in xrange(100)}
> assert dct == "Hi"
E assert {'0': 0, '1': 1, '10': 10, '11': 11, ...} == 'Hi'
test_it.py:3: AssertionError
________________________________________________ test_it2 ________________________________________________
def test_it2():
dct = {str(i): i for i in xrange(100)}
> assert dct == "Hi", str(dct) + " shall sound friendly"
E AssertionError: {'24': 24, '25': 25, '26': 26, '27': 27, '20': 20, '21': 21, '22': 22, '23': 23, '28': 28, '29': 29, '0': 0, '4': 4, '8': 8, '59': 59, '58': 58, '55': 55, '54': 54, '57': 57, '56': 56, '51'
: 51, '50': 50, '53': 53, '52': 52, '88': 88, '89': 89, '82': 82, '83': 83, '80': 80, '81': 81, '86': 86, '87': 87, '84': 84, '85': 85, '3': 3, '7': 7, '39': 39, '38': 38, '33': 33, '32': 32, '31': 31, '30': 30, '
37': 37, '36': 36, '35': 35, '34': 34, '60': 60, '61': 61, '62': 62, '63': 63, '64': 64, '65': 65, '66': 66, '67': 67, '68': 68, '69': 69, '2': 2, '6': 6, '99': 99, '98': 98, '91': 91, '90': 90, '93': 93, '92': 92
, '95': 95, '94': 94, '97': 97, '96': 96, '11': 11, '10': 10, '13': 13, '12': 12, '15': 15, '14': 14, '17': 17, '16': 16, '19': 19, '18': 18, '48': 48, '49': 49, '46': 46, '47': 47, '44': 44, '45': 45, '42': 42, '
43': 43, '40': 40, '41': 41, '1': 1, '5': 5, '9': 9, '77': 77, '76': 76, '75': 75, '74': 74, '73': 73, '72': 72, '71': 71, '70': 70, '79': 79, '78': 78} shall sound friendly
test_it.py:8: AssertionError
======================================== 2 failed in 0.02 seconds ========================================
</code></pre>