2017-06-05 2 views
1

私はPluralsightから得たもので、コースを提示しているチャップは明らかに障害を起こさずにコードを実行しますが、実行するとエラーメッセージが表示されます:Fユニットのテストエラー:xUnit.net/TestDriven.Net

"Test failed ‘T:Messaging’ : Couldn’t find type with name ‘Messaging’"

Test failed 'T: Couldn't find type with name

アイデア(感謝)

namespace Ploeh.Samples 

open System 

module Messaging =  
    type Envelope<'a> = { 
     Id  : Guid 
     Created : DateTimeOffset 
     Item : 'a } 

    let envelop getId getTime item = { 
     Id = Guid "1CF889F8-201F-44DF-BC86-77227651D3EE" 
     Created = DateTimeOffset.MinValue 
     Item = item } 

module MessagingTests = 
    open Xunit 

    type Foo = { Text : string; Number : int } 

    [<Fact>] 
    let ``enevelope returns correct results``() = 
     let getId _ = Guid "1CF889F8-201F-44DF-BC86-77227651D3EE" 
     let getTime _ = DateTimeOffset(636322011751405346L, 
             TimeSpan.FromHours(-4.0)) 
     let item = { Text = "Bar"; Number = 42 } 

     let actual = Messaging.envelop getId getTime item 

     Assert.Equal (Guid "1CF889F8-201F-44DF-BC86-77227651D3EE", 
         actual.Id) 
     Assert.Equal (DateTimeOffset(636322011751405346L, 
             TimeSpan.FromHours(-4.0)), 
         actual.Created) 
     Assert.Equal (item, actual.Item) 
+3

最初のファイルで

... TestDriven.Netは、名前空間/モジュールシステムの問題を取り、それらによって混乱してしまうようですコールスタックを表示してください。 –

+1

エラーを再現しようとしましたが、できませんでした。テストは実行されましたが、actual.Createdのために失敗しましたDateTimeOffset.MinValue、私は期待される結果です。 – Foole

+0

私は何を心配していますか?@Foole ...理想的には、人は何かが彼らのために働いていない理由を知りたいのですが、他の人のためにはうまくいきます。たぶんTestDriven.Netと私の.Netバージョンの問題です! –

答えて

1

私はテストを別々のファイルとトップレベルモジュールに分けて動作させることができました。なんらかの理由で、この `setup '以外のものは動作しません。例えば、別ファイルですが、下位モジュール、名前空間、モジュール宣言は別々です。インストラクターが使用するもの、またはVisual Studio 2017の問題などではなく、.Net 4.7などがあります。

namespace Ploeh.Samples 

open System 

module Messaging =  
    type Envelope<'a> = { 
     Id  : Guid 
     Created : DateTimeOffset 
     Item : 'a } 

    let envelop getId getTime item = { 
     Id = Guid "1CF889F8-201F-44DF-BC86-77227651D3EE" 
     Created = DateTimeOffset.MinValue 
     Item = item } 

そして第二に、ファイル内:

module Ploeh.Samples.MessagingTests 

open System 
open Messaging 
open Xunit 

type Foo = { Text : string; Number : int } 

[<Fact>] 
let ``enevelope returns correct results``() = 
let getId _ = Guid "1CF889F8-201F-44DF-BC86-77227651D3EE" 
let getTime _ = DateTimeOffset(636322011751405346L, 
           TimeSpan.FromHours(-4.0)) 
let item = { Text = "Bar"; Number = 42 } 

let actual = Messaging.envelop getId getTime item 

Assert.Equal (Guid "1CF889F8-201F-44DF-BC86-77227651D3EE", 
       actual.Id) 
Assert.Equal (DateTimeOffset(636322011751405346L, 
           TimeSpan.FromHours(-4.0)), 
       actual.Created) 
Assert.Equal (item, actual.Item) 
関連する問題