簡體   English   中英

FitNesse 與 JUnit:並行執行套件

[英]FitNesse with JUnit : Execute suites in parallel

我有兩套相互排斥的 FitNesse 套裝,我想並行運行它們。

由於它們是從junit測試用例中調用的,因此我編寫了以下代碼:

@Test
public void executeFitnesseSuites() {
    final Class<?>[] classes = { Suite1.class, Suite2.class };
    final Result result = JUnitCore.runClasses(ParallelComputer.classes(), classes);
    System.out.println(result);

}

@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("Suite1")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("/tmp/fitnesse/")
public static class Suite1{

}

@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("Suite2")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("/tmp/fitnesse/")
public static class Suite2{

}

在較早的實現中,它們是兩個獨立的類並按順序執行。

但是,我看到上述測試的執行時間類似。

這是否意味着 FitNesse 沒有啟動兩個超薄服務器實例並並行執行這些套件?

不幸的是,FitNesse 本身不是線程安全的,因此不應同時在一個 JVM 中運行兩個超薄服務器實例。

我不確定 jUnit 使用您使用的方法的行為方式。 它是啟動兩個並行的 JVM,還是僅啟動同一個 JVM 中的線程?

我過去使用 jUnit 運行兩個完全獨立的套件的方法是兩個有兩個單獨的類(就像你以前那樣)並使用 Maven 的故障安全插件在單獨的 JVM 上並行運行它們。 Failsafe(以及forkCount )提供了一個forkCount屬性來指定要使用的進程數(參見http://maven.apache.org/surefire/maven-failsafe-plugin/examples/fork-options-and-parallel-execution .html了解更多詳情)。 請注意,您不應使用parallel屬性,因為它位於一個 JVM 中。

如果您正在使用 FitNesse 的 jUnit runner 並行運行測試,您可能還會對我創建的一個工具感興趣,該工具將此類運行的 HTML 報告合並到一個報告中: HtmlReportIndexGenerator 這是我的裝置 jar 的一部分,但也可作為單獨的docker 圖像使用: hsac/fitnesse-fixtures-combine

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM