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