OCaml(主にユーティリティとヘルパー関数)にいくつかの "ライブラリ"モジュールがあります。最後に、簡単なユニットテストのために次のようなコードを追加しました:リンクされたOCamlモジュールの複数の "mains"
let main() = ...
main
又は
let() = ...
(単純なテスト目的のために)コンソールへ主プリントこのビーイング・コード。問題は、今私の "ライブラリ"モジュールを私の "メイン"モジュールにリンクしてプログラムを実行すると、これらの気を散らすテストメッセージがすべて得られるということです。モジュールが単独でリンクされたときに実行されるOCamlモジュールにコードを含める方法はありますか(つまり、簡単なテストを容易にする)が、「ライブラリ」として使用する場合はそうではありませんか?私はOCamlに "main"モジュールの概念がなく、すべてのモジュールが同じだと言うわけではないので、SOの記事を読んでいますが、リンカに与えられたオブジェクトファイルの順序が、最後のモジュールは "メイン"モジュールです(それは "依存関係のフードチェーン"の最上位にあるためです)。
Cでは正しいですが、テストフロントエンドを使う必要がありますが、Javaでは、自明ではないクラスのmain()に何らかの大雑把な "テスト"をさせるのが一般的です。ある種類のコードがクリーンアップされ、それ以上の目的を果たさないテストフレームワークですが、最初のアクティブな開発中にこの機能が使用されます。私はOCamlではトップレベルを持っているが、同じことではないことを認識しています。 –
コメント:addendumをご覧ください – lambdapower