1

Fitnesse 用のカスタム コンパレータを作成してロードしようとしましたが、動作しません。私のスクリプト テーブルでは完全に無視されており、文字列の等価性を直接比較しています。

コンパレータ:

package com.company;
import fitnesse.testsystems.slim.CustomComparator;

public class ContainsComparator implements CustomComparator{

    @Override
    public boolean matches(String actual, String expected) {
        if(actual != null && actual.contains(expected)){
            return true;
        }
        else{
            return false;   
        }
    }
}

テスト ページの内容:

!define TEST_SYSTEM {slim}
!path C:\Path\To\My\Comparator.jar

!|Import|
|fitnesse.fixtures|

!| SetUp | CustomComparators=contains:com.company.ContainsComparator |

!|Script|com.company.SomeFixture|
|check| response|contains:something|

最後のチェックのみが失敗し、次を返します: [そこにあるもの] 期待される [含む: 何か]。その他の例外や失敗はありません (たとえば、セットアップはエラーをスローしません)。

http://fitnesse.org/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestCustomComparatorshttp://www.fitnesse.org/FitNesse.UserGuide.AAdminingFitNesse.ConfigurationFileの例に従ってここまでたどり着きましたが、これ以上見つけることができませんこれに関するドキュメント。

4

2 に答える 2

2

plugins.properties ファイルを介してカスタム コンパレータを登録してみてください。

于 2016-01-21T19:30:20.073 に答える
0

(私のように)受け入れられた回答と質問へのコメントを適用した後でもこれを機能させることができなかった人のために:を使用してfitnesseを実行するfitnesse-standalone.jarと、プラグインはディレクトリ内のjarファイル内でのみ検索されますplugins。そこにクラスファイルを配置しても機能しません。

また、URLClassLoaderjar ファイル内を調べるために a が使用されるため、クラス ファイルがそのパッケージに対応するディレクトリ内にあることを確認してください。たとえばContainsComparator、質問に含まれる jar ファイルには、次のディレクトリ構造が必要です。

.
+-- com
    +-- company
        +-- ContainsComparator.class
于 2018-03-29T08:58:09.410 に答える