ユニットテストには素晴らしいFSUnitを使用しています。これは正常に機能しますが、テストの本体では、#light構文の代わりに完全なF#構文(各行の末尾に「in」を付けるなど)を使用する必要があります。例えば:
module MyTests
open System
open NUnit.Framework
open FsUnit
open MyModule
[<TestFixture>]
type ``Given a valid file`` () =
let myFile = createSomeFile()
[<Test>] member x.
``Processing the file succeeds`` () =
let actual = processFile myFile in
actual |> should be True
テストの最初の行の最後にある「in」に注意してください。これがないと、テストはコンパイルされません。これは、短いテストでは問題ありませんが、長いテスト方法では問題になります。ソースに明示的な#lightを追加しようとしましたが、違いはないようです。これは、多くのモジュールを含む大規模なプロジェクトの一部であり、テストモジュールを除くすべてのモジュールがlight構文を(明示的な#lightなしで)うまく使用しています。テストモジュールで完全な構文をトリガーするものは何ですか?