1

Fitnesse Fixture の Java でプログラム引数を渡すにはどうすればよいですか?と同様です。

.. FitnesseMain.FitNesseMain.launchFitNesse(Arguments arguments)... を使用して並行して Fitnesse テストを開始し、Fitnesse によって実行されるテスト コードによって後でアクセスされるように、各テストにスレッド セーフなオブジェクトを渡します。

テスト コード自体は単純な古い Java であり、givwenzen を使用して Fitnesse から呼び出されます。Java テスト コードは、Selenium テストを動的に開始します。

これらのスレッド セーフなオブジェクトを Fitnesse 経由で Java テスト スクリプトに渡して、正しい org.openqa.selenium.remote.DesiredCapabilities で Selenium RemoteWebDriver を開始する必要があります。

古き良き java.lang.ThreadLocal を使用してみましたが、Fitnesse が独自のスレッドを生成してテストを実行しているようで、このオプションを効果的に排除しています。

4

1 に答える 1

0

GivwenzenがSlimを使用して書かれていることを考えると、あなたがやりたいことは不可能だと思います。Slimは別のプロセスでテストを実行することで機能するため、可能であれば、それは確かに簡単ではありません。

したがって、FitNesseを実行すると、WebサーバーとWikiが作成されます。これは1つのJavaタスクとして実行されます。[テスト]または[スイート]ボタンをクリックする(またはURLを使用する)と、SlimServerである新しいJavaプロセスが作成されます。次に、FitNesseサーバーがSlimServerに文字列として命令を送信し、SlimServerがそれらを処理してテストを実行する命令にします。したがって、FitNesseMainを介して起動されたコードとスリムなテストとの結合は、実際にはやや緩いものです。SlimServerの実装を言語に依存しないようにするため、これは意図的に行われます。

SlimServer内には、実際のオブジェクト参照を操作する機能があり、それで問題ないかもしれませんが、CoCが各ステップでスレッドセーフになるかどうかは疑問です。

ごめん。たぶん、他の誰かが私が説明した問題を回避する方法についてのアイデアを持っているでしょう。

于 2012-12-05T17:29:22.280 に答える