在Python的unittest中通过测试列表时,指定哪些测试用例失败

时间:2019-10-16 15:18:23

标签: python-unittest

嗨,我有一个要使用单元测试对其进行测试的功能:

def interleave(a,b):
    m = len(a)
    n = len(b)
    N = m if m>n else n
    result = []
    for i in range(N):
            result += [a[i], b[i]]
    return result

我的测试如下:

from interleave import interleave
import unittest

class TestGettingStartedFunctions(unittest.TestCase):
  def test_interleave(self):
        cases = [
            ([], [], []), # corner case
            ([1, 4, 6], [], [1, 4, 6]),# edge case
            ([], [2, 3], [2, 3]),# edge case
            ([1], [9], [1, 9]), # regular case
            ([8, 8, 3, 9], [1], [8, 1, 8, 3, 9]),
            ([2], [7, 8, 9], [2, 7, 8, 9]),
        ]
        for a, b, expected in cases:
            self.assertEqual(interleave(a, b), expected)

运行测试时,我得到以下信息:

  

$ python test_interleave.py -v test_interleave   (主要 .TestGettingStartedFunction)...错误

     

================================================ ======================错误:test_interleave(主要 .TestGettingStartedFunction)   -------------------------------------------------- --------------------追溯(最近一次通话最后一次):文件“ test_interleave.py”,行   14,在test_interleave中       self.assertEqual(interleave(in1,in2),expected)文件“ /Users/csarami/pythonExamples/interleave/interleave.py”,第7行,在   交错       结果+ = [a [i],b [i]] IndexError:列表索引超出范围

     

-------------------------------------------------- -----------------------在0.001秒内进行了1次测试

     

失败(错误= 1)

我希望测试返回通过([1],[9],[1、9])案例,并以冗长的方式报告另一个失败。

任何帮助或解决方法将不胜感激。

0 个答案:

没有答案