2014-12-15 4 views
0

, 나는 두 목록파이썬 유닛 테스트에서

내가 어떻게해야합니까
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'] 
     #??? 

을 비교하고 독립적 인 실패가 아닌 하나의 실패로 각 장애의 치료, 두 개의 목록을 비교? 나는 에있는 모든 요소가 실패한 것을 알리려는 것이 아니며, 그 목록은 엄청나 다. 그래서 나는 stdout에서 아무것도 볼 수 없으므로, 에있는 모든 요소에 대해 알려주고, 목록의 출력을 단지 sublist elemnts로 억제하지 않을 것이다.

샘플 출력 ..

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

답변

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 

를 인쇄 할 수 있습니까?

1
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) 
관련 문제