2

もちろん、以下の 2 つのテストは失敗します。しかし、エラー メッセージに同じ期待値が 2 つ表示されるのはなぜでしょうか? 1つだけ表示する方法はありますか?

myTest戻り値Expected: <B> or <B> But was: <A>

myTest2戻り値Expected: <{ N = 2 }> or <{ N = 2 }> But was: <{ N = 1 }>

Expected: <B> But was: <A>代わりにプレーンな NUnit を使用すると、これは期待どおりに機能します (例: )。

もちろん、より複雑な型を扱う場合、これはかなり厄介になります。

Tests.cs:

namespace Blah

open FsUnit
open NUnit.Framework

module Tests =

    type MyDU = A | B

    type MyRecord = { N: int }

    [<Test>]
    let myTest ()=
        A |> should equal B

    [<Test>]
    let myTest2 ()=
        { N = 1 } |> should equal { N = 2 }

プロジェクト ファイル:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Tests.fs" />
  </ItemGroup>
  
  <ItemGroup>
    <PackageReference Update="FSharp.Core" Version="5.0.2" />
    <PackageReference Include="FsUnit" Version="4.2.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
  </ItemGroup>
  
</Project>
4

1 に答える 1