h2. OpenWFEru デベロッパー用ドキュメント

h3. <a name="into">OpenWFEruへの入り口</a>

初めは "quotereporter.rb":/examples/quotereporter.rb の例を学習するとよいでしょう。

他の"サンプル":/examples/ も見てください。

その中に "flow tracing" の例があります。以下でこれを起動できます。

<pre>
    ruby -I lib examples/flowtracing.rb
</pre>

これはそれぞれのparticipant に着いたトレースを標準出力に表示します。

次のステップは"ft_"で始まる名前のユニットテストを見ることでしょう。これらはプロセスエンジンの様子を全て表示します。

もし専門用語を忘れたら、 "glossary":glossary.html を見てください。


h3. <a name="utests">ユニットテストの起動</a>

<em>Note :</em> OpenWFEru は MacOSX (<em>ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.3]</em>  この環境は "Hivelogic":http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx のDan Benjamin に教示していただきました)で開発・テストしています。

Rake のしきたりに沿って、以下のようにユニットテストを走らせることができます。

<pre>

    rake test

</pre>

ある程度時間がかかります (私のマシンではおおよそ400秒)。それは'cron', 'sleep', 'when',またはスケジューラーに関する時間に関係したテストを含んだ<b>全ての</b> テストが実行されるからです。

もしもっと早く実行したいなら (たぶんあなたがソースの変更を伝える後でしょうけど), 以下のように。

<pre>

    rake qtest

</pre>

これは test/rake_qtest.rb にリストアップされているテストのみを実行します。これだと 22 秒です(私のマシンでは)。

rake でテストを実行するごとに、最新の _engine.log_ にテストの実行ログ(完全なデバッグログを含む)が出力されます。これはテスト・デバッグ中のあなたのベストフレンドです。

OpenWFEru はワークフロー / BPM エンジンなので, 永続という要素はとても重要です (平均的なビジネスプロセスは長く続き、リスタートで生き返らないといけません)。

rake_qtest.rb にある永続モードのテストを全て実行するには…以下です。

<pre>

    rake ptest

</pre>

このテストの永続モードはキャッシュを使わないことに注意してください。これは完成品ではなくテスト版という意味で、.つまりexpression がテストされた永続的なタイミングで全てのエラーが表示されるということです。'ptest' を実行すると, 全ての 'ft_' のテストはこの何もしていない永続モードで実行されます。

一度に一つのテストを実行するには…。 

<pre>

    rake test TEST=test/ft_2_concurrence.rb

</pre>

同じテストを永続モード (FlowTestBaseの拡張機能です) で実行するには…。

<pre>

    rake ptest TEST=test/ft_2_concurrence.rb

</pre>

'test' を 'ptest' に変えるだけです。

また、"CachedFilePersistenceEngine"(インメモリーくらい速く永続化するエンジン)用のテスト一式もあります。

これをテストするには…以下です。 

<pre>

    rake ctest

</pre>


h3. <a name="template">エンジン テンプレート</a>

OpenWFEru エンジンのコンフィグ方法を示す. <a href="/examples/engine_template.rb">テンプレート</a> があります。これにはたくさんのコメントがあります。

OpenWFEru エンジンのちゃんとしたセッティングをするためにこのテンプレートをコピーして修正することができます。

_(続く)_

