2011-11-22 29 views
0

繼承人的問題:硒(?格)FitNesse的Maven的碼頭

的Maven需要20分鐘來構建我的項目,18mins作爲FitNesse的集成測試。

測試通過在本地啓動Jetty服務器,然後逐個觸發fitNesse測試來運行。

我聽說Selenium-grid可以同時運行多個測試。 Maven有一個Selenium插件,我已經看到Selenium可以運行fitNesse測試。

但我找不到關於連接所有三個的信息?

基本上,我想通過Selenium運行我的現有fitNesse測試,目的是在本地的Jetty服務器上將它們並行化到Maven中。

這可能嗎?我錯過了什麼嗎?

乾杯, 丹尼爾

+0

如何http://xebee.xebia.in/2010/ 05/10 /行家基於自動化-執行-的-fitnium驗收檢驗/? –

+0

謝謝!這絕對比我設法找到的更多。雖然沒有提及並行運行測試... – user993159

回答

0

您可以創建一個TestRunner的類。

的TestRunner將讀取FitNesse的測試,從文本文件中的條目

的TestRunner將創建線程和線程使用特立尼達運行FitNesse的測試:製程測試運行的FitNesse的維基

http://www.fitnesse.info/trinidad

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.sql.*; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.UUID; 

import fit.Counts; 
import fitnesse.trinidad.*; 
import java.io.*; 

public class InProcessRunner { 
public static String testright, testwrong, testexceptions, testname,summary; 
public static Counts cs; 
public static int right, wrong, exceptions, totalright, totalwrong, 
     totalexceptions; 
public static String str1, strhead , strsummary; 
static UUID batchId = UUID.randomUUID(); 

public static void startProcessing(final List<String> tests) 
     throws InterruptedException { 

    Thread t = new Thread() { 

     @Override 
     public void run() { 
     try{ 
      for (String next : tests) {   


       String dbhost = "jdbc:mysql://localhost/automation?user=root"; 
       Class.forName("com.mysql.jdbc.Driver").newInstance();   
       Connection conn = DriverManager.getConnection(dbhost); 

       Statement stmt = conn.createStatement(); 
       stmt.executeQuery("select * from environment");  

       ResultSet rs = stmt.getResultSet(); 

         while(rs.next()){ 

         System.setProperty("browser", rs.getString("browserCode"));    



         boolean status = new File("C:\\wamp\\www\\output\\"+ batchId +"\\"+ rs.getString("browserName") +"").mkdirs();  
         System.out.println(status); 
         TestRunner tdd = new TestRunner(new FitNesseRepository(
          "C:\\root\\fitnesse"), new FitTestEngine(), 
          "C:\\wamp\\www\\output\\"+ batchId+"\\"+rs.getString("browserName")+""); 

        cs = tdd.runTest(next); 
        right = cs.right; 
        wrong = cs.wrong; 
        exceptions = cs.exceptions; 
        totalright = right + totalright; 
        totalwrong = wrong + totalwrong; 
        totalexceptions = exceptions + totalexceptions; 


      testname = tests.toString(); 
      testname = testname.replace("[", ""); 
      testname = testname.replace("]", ""); 
      summary = cs.toString(); 


      java.util.Date dt = new java.util.Date(); 
      java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
      String currentTime = sdf.format(dt); 

      String sql = "insert into report(testName,passed,failed,exception,createdTime,batchId,browser) values ('"+ testname +"','"+ right +"','"+ wrong +"','"+ exceptions +"','"+ currentTime + "','"+ batchId +"','"+ rs.getString("browserName") +"')"; 
      System.out.println(sql); 
      PreparedStatement ps = conn.prepareStatement(sql); 
      System.out.println(sql);      

      ps.execute(sql); 
      ps.close();     


      System.out.println(" Test Passed " + totalright); 
      System.out.println(" Test Failed : " + totalwrong); 
      System.out.println(" Test Exceptions : " + totalexceptions); 
      } 

      } 

     }catch(Exception e){ 
     e.printStackTrace();  
    } 
} 

    }; 
    t.start(); 

} 


public static void main(String[] args) throws IOException { 

    File file = new File("C:\\root\\fitnesse\\TestList1.txt"); 


    try { 
     BufferedReader bufRdr = new BufferedReader(new FileReader(file)); 
     String csvline = null; 

     int c = 0; 
     List<String> testList = new ArrayList<String>(); 

     while ((csvline = bufRdr.readLine()) != null) { 
      if (c == 1) { 
       startProcessing(testList); 
       testList = new ArrayList<String>(); 
       c = 0; 
      } 
      testList.add(csvline); 
      c++; 
     } 
     startProcessing(testList); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 


} 
0

你可以將三者與jenkins綁在一起,用詹金斯代替maven。我寫了一篇關於它的短博客http://mjvdende.com/2013/05/execute-xebium-fitnesse-tests-on-your-own-selenium-grid/

這個想法很簡單。讓詹金斯控制你硒電網通過硒插件和詹金斯與FitNesse中的執行你的FitNesse測試插件

希望這有助於

+0

對於那些有興趣的人:這是新的[鏈接](http://mjvdende.com/2013/05/execute-xebium-fitnesse-tests-on-your -own-selenium-grid /)http://mjvdende.com/2013/05/execute-xebium-fitnesse-tests-on-your-own-selenium-grid/ – Seirddriezel