【问题标题】:python comparing two lists, treating each failure as an independent failure instead of a single failurepython比较两个列表,将每个故障视为独立故障而不是单个故障
【发布时间】:2014-12-15 23:06:16
【问题描述】:

在单元测试中,我正在比较两个列表

class MyTest(unittest.TestCase):
    def setUp(self):
        self.list_to_check_against = ['hu','ge','li','st']

    def test_with_sub_list(self):
        #raise failure for each elenment in sublist not in list_to_check_against
        sublist = ['hu','go','le']
        #???

我该怎么做?我不想收到sublist 中每个元素的失败通知,即list_to_check_against 中的每个元素,并且只抑制sublist 元素的列表输出,因为列表很大,我在标准输出中看不到任何内容。

样本输出..

2 out 3 failures.. 
'go' , 'le' ...

【问题讨论】:

    标签: python list testing tdd unit-testing


    【解决方案1】:
    def test_with_sub_list(self):
            sublist = ['hu','go','le']
            missing_elems = set(sublist)-set(self.list_to_check_against)
            assert not missing_elems, 
                 "Error: %s not in list_to_check_against"%missing_elems
    

    也许?

    【讨论】:

      【解决方案2】:
      class MyTest(unittest.TestCase):
          def setUp(self):
              self.list_to_check_against = ['hu','ge','li','st']
      
          def test_with_sub_list(self):
              #raise failure for each elenment in sublist not in list_to_check_against
              sublist = ['hu','go','le']
              self.assertSequenceEqual(self.list_to_check_against, sublist)
      

      如果您只想知道缺少什么,可以打印差异

      print set(list_to_check_against) - set(sublist)
      

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-09
        • 1970-01-01
        • 1970-01-01
        • 2016-03-13
        相关资源
        最近更新 更多