打开NUnit.Framework - 未定义名称空间或模块。在F#中引用

时间:2015-02-11 11:44:20

标签: c# visual-studio-2013 f# nunit nuget

我正在使用VS2013 ProfessionalF#C#Nunit。值得注意的是,这是我对F#的第一次尝试,所以问题很可能是愚蠢的,解决方案很明显。

我要做的是使用NUnit实施测试用例,并使用TestCaseSource使用TestCaseData属性。

测试:

namespace Legal.Tests.Helpers
open System
open System.Collections.Generic
open System.Linq
open System.Text
open System.Threading.Tasks
open NUnit.Framework
open Legal.Website.Infrastructure

type FTest() = 
    [<TestFixture>]
    [<TestCaseSource("FTestData")>]
    let ConcatTest(text : string, expected : string) =
    [<Test>]
        let actual = Saga.Services.Legal.Website.Infrastructure.FunctionModule.TestFunction text
        Assert.AreEqual expected actual
    let FTestData : seq<TestCaseData> = [ new TestCaseData (text = "x", expected = "Item1xItem2" ); new TestCaseData (text = "y", expected = "Item1yItem2" ) ] 

功能测试:

namespace Legal.Website.Infrastructure

open System
open System.Collections.Generic
open System.Linq
open System.Web

type Test(text2 : string) = 
  member this.Text = "Item1"
  member this.Text2 = text2

module functions = 
    let TestFunction (text : string) =
        let test = new Test (text2 = "Item2")
        String.Concat [test.Text; text; test.Text2]

有一点值得注意 - 我已通过将F#文件重命名为.cs来创建.fs测试文件和文件。

问题:当我尝试open任何非System的库时(在本例中为Nuget包NUnit.Framework和参考项目Legal.Website.Infrastructure )我收到错误:the namespace or module is not defined在测试项目中引用,同一目录中的.cs测试运行正常。

1 个答案:

答案 0 :(得分:1)

我的问题很愚蠢。

无法将

.fs个文件添加到C#项目,例如.vb个文件。要正确执行此操作,需要将F#项目添加到解决方案中,请参阅下面的屏幕截图。

enter image description here

实现:

module Implementation

let Concat(text:string) = 
    "root"+ text

测试:

module Test
open NUnit.Framework

[<TestFixture>]
type Test() = 
    member this.ConcatinationTestData() = 
        [new TestCaseData("roottext","text"); new TestCaseData("root","")]
    [<Test>]
    [<TestCaseSource("ConcatinationTestData")>]
    static member ConcatinationTest(expected:string, text:string) =
       Assert.AreEqual(expected,Implementation.Concat(text))
       |> ignore

调试 - &gt;附加到流程 - &gt; NUnit的-agent.exe

结果: enter image description here