Exception 单元测试错误:xUnit.net/TestDriven.net

Exception 单元测试错误:xUnit.net/TestDriven.net,exception,types,f#,xunit.net,testdriven.net,Exception,Types,F#,Xunit.net,Testdriven.net,因此,我从Pluralsight获得了以下信息,介绍课程的家伙显然顺利地运行了代码,但是,当我运行它时,我收到了错误消息: 测试失败“T:消息传递”:找不到名为“消息传递”的类型 测试失败'T:找不到名为的类型 有什么想法吗 namespace Ploeh.Samples 开放系统 模块消息= 键入Envelope我将测试分离到一个单独的文件和顶级模块中,从而使它工作起来。出于某种原因,除此“设置”之外的任何内容都不起作用,例如,单独的文件但位于较低级别的模块中,或者名称空间和模块声明分开。。。

因此,我从Pluralsight获得了以下信息,介绍课程的家伙显然顺利地运行了代码,但是,当我运行它时,我收到了错误消息:

测试失败“T:消息传递”:找不到名为“消息传递”的类型

测试失败'T:找不到名为的类型

有什么想法吗

namespace Ploeh.Samples
开放系统
模块消息=

键入Envelope我将测试分离到一个单独的文件和顶级模块中,从而使它工作起来。出于某种原因,除此“设置”之外的任何内容都不起作用,例如,单独的文件但位于较低级别的模块中,或者名称空间和模块声明分开。。。我不确定这是否是说我的目标是.Net 4.7,而不是讲师使用的任何东西,或者Visual Studio 2017的问题,或者其他什么。似乎TestDriven.Net对名称空间/模块系统产生了问题,并被它们弄糊涂了

在第一个文件中:

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 }
namespace Ploeh.Samples
开放系统
模块消息=

请键入信封显示调用堆栈。我已尝试复制错误,但无法复制。测试运行了,但由于实际.Created为DateTimeOffset.MinValue而失败,我相信这是预期的结果。这让我担心,@傻瓜。。。理想情况下,一个人想知道为什么有些东西对他们不起作用,而对其他人来说,它却很好。也许这是TestDriven.Net和我的.Net版本的问题!看起来这可能是testdriven.net的一个问题。查看更多详细信息运行解决方案中的所有测试确实有效。只有在独立运行测试时才会失败
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 )