スクリプトを Visual Studio に追加しただけでも、他の (おそらく ) ファイルと一緒に通常のプロジェクトにfsx
コンパイルできるため、スクリプトを Visual Studio で通常のスクリプト ファイルとして保持できると同時に、プロジェクトから、またはテストをビルドするコマンド ライン ツールから参照します。setup.fsx
fs
test.fsx
私は次のファイルでそれをやってみました:
module Demo
#r "System.Xml.Linq.dll"
open System.Xml.Linq
let test () =
let d = XDocument(XElement(XName.Get("foo")))
d.ToString()
module Name
(他のファイルから関数にアクセスできるように) 最初に宣言が必要なのは間違いありませんが、それ以外の場合は、任意のfsx
ファイルにすることができます。私が使用した他のファイルは次のtest.fs
とおりです。
module Main
open Demo
test() |> printfn "%A"
これはテスト用ですが、ここで単体テストを記述できます。次のコマンドでファイルをコンパイルすると、xUnit に渡すことができる標準アセンブリが得られます (注意: コンパイラは#r
からタグを選択できtest.fsx
ます。参照を明示的に記述する必要はありません)。
fsc.exe --target:library test.fsx test.fs
ライブラリ プロジェクトを追加してから、ファイル内の次のようなものを使用してファイルへのリンク (ソリューション構造の他の場所にあるファイルを指すことができます) を手動で追加すると、Visual Studio で同じ構成を取得できると思いますfsproj
。
<Compile Include="..\Eslewhere\In\Your\Project\Tree\File.fsx">
<Link>File.fsx</Link>
</Compile>
「アイテムの追加」を使用してファイルを追加するfsx
と、「コンパイル」ではなく「インクルード」としてマークされるため、プロジェクトの一部としてコンパイルされないことに注意してください。上記はそれをプロジェクトに含める必要があり、コンパイルされたアセンブリにも含めるようコンパイラに指示する必要があります。
警告:dll
とはいえ、標準の単体テストを使用して、コンパイル済みのファイルだけをテストする方がよいと思います。ファイルをテストしたい場合fsx
は、最後にテストとして数行を追加し、手動で実行します (select, Alt
+ Enter
)。その理由は、fsx
ファイルは頻繁に変更されることが想定されているため、堅実なテストを行うと柔軟性が制限される可能性があるためです。一方、コードがより強固になったら、それをdll
ファイルに移動することは理にかなっています。