2017-04-17 5 views
1

내가 네 범주로 테스트 케이스를 분류하는 것을 시도하고있다 : 여러 조건에 따라 여러 장의 단일 통합 문서에 데이터를 쓰는 방법은 무엇입니까?

  • 수동 회귀를

    1. 수동 연기
    2. 자동-연기
    3. 자동화 된 회귀

    내가 가진 파이썬을 이 방법으로 사전을 줄 코드 :

    "ABC": { 
        "id1": "name1", 
        "id2": "name2", 
        "id3": "name3" 
        } 
    

    xlsxwriter을 사용하여 다음 코드를 작성했지만 모든 시트를 반복하지만 마지막으로 저장합니다. 내 탁월한 WB에서 나는 마지막 장을 하나만 얻습니다. 위의 내가 '자동화 된 회귀'가지 경우를 얻을 코드 만 사용

    def createExcelSheetTC(self,testcase): 
        workbook=xlsxwriter.Workbook('data.xlsx') 
        self.format_excelWB(workbook) 
        with xlsxwriter.Workbook('data.xlsx') as workbook: 
         self.format_excelWB(workbook) ##Initialize formatting of WB 
         if testcase == self.manualSmoke: 
          ws_manualSmoke=workbook.add_worksheet('Manual-Smoke Cases') 
          self.writeTCExcel(testcase,ws_manualSmoke) 
         elif testcase == self.manualRegression: 
          ws_manualRegression=workbook.add_worksheet('Manual-Regression Cases') 
          self.writeTCExcel(testcase,ws_manualRegression) 
         elif testcase == self.automatedSmoke: 
          ws_autoSmoke=workbook.add_worksheet('Automated-Smoke Cases') 
          self.writeTCExcel(testcase,ws_autoSmoke) 
         elif testcase == self.automatedRegression: 
          ws_autoRegression=workbook.add_worksheet('Automated-Regression Cases') 
          self.writeTCExcel(testcase,ws_autoRegression) 
        workbook.close() 
    
    def writeTCExcel(self,tc,worksheet): 
        ##Logic to write testcase in EXCEL 
        ## This is correct as per requirements 
    
    
    self.manualSmoke=self.get_test_cases(args*) 
    self.createExcelSheetTC(testcase=self.manualSmoke) 
    
    self.manualRegression=self.get_test_cases(args*) 
    self.createExcelSheetTC(testcase=self.manualRegression) 
    
    self.automatedSmoke=self.get_test_cases(args*) 
    self.createExcelSheetTC(testcase=self.automatedSmoke) 
    
    self.automatedRegression=self.get_test_cases(args*) 
    self.createExcelSheetTC(testcase=self.automatedRegression) 
    

    하지 다른 3 단지 다른 모든 쓰기 업을 덮어 마지막 &에 저장 것 같습니다.

  • +0

    4 가지 통화 모두에서 'args *'가 동일하기 때문에 이러한 현상이 발생합니까? – JacobIRR

    답변

    1

    다음과 같은 방법으로 해결되었습니다.

    import xlsxwriter 
    d1 = { 
         "ABC": { 
        "key1": "val1", 
        "key2": "val2", 
        "key3": "val3" 
        }, 
        "XYZ": { 
        "key4": "val4", 
        "key5": "val5", 
        "key6": "val6" 
        } 
    } 
    d2= { "MNO": { 
        "key7": "val7", 
        "key8": "val8", 
        "key9": "val9" 
        } 
    } 
    
    
    def create_xls_writer(tc): 
        workbook=xlsxwriter.Workbook('xlsxwriter.xlsx') 
        print tc 
        ws1=workbook.add_worksheet('abc') 
        ws2=workbook.add_worksheet('xyz') 
    
        worksheet = [ws1,ws2] 
    
        for each_tc in tc: 
         if each_tc==d1: 
          writeTCEXcel(each_tc,ws1) 
         elif each_tc==d2: 
          writeTCEXcel(each_tc,ws2) 
    
        workbook.close() 
    
    def writeTCEXcel(something,worksheet): 
    ##Logic to write **Something** in EXCEL 
    
    
    
    create_xls_writer([d1,d2]) 
    
    2

    모든 전화가 xlsx 일 때마다 덮어 쓰게되므로 def createExcelSheetTC에 마지막 전화 번호 만 표시됩니다.

    외부로 이동하여 으로 전화하십시오.으로 전화하십시오.

    workbook=xlsxwriter.Workbook('data.xlsx') 
    self.format_excelWB(workbook) 
    ... 
    workbook.close()