2

我正在尝试使用 TestDriven.NET 运行 xUnit 测试(从 F# 模块,如果它有任何区别),但无论我做什么,我都会收到此错误:

It looks like you're trying to execute an xUnit.net unit test.

For xUnit 1.5 or above (recommended):
Please ensure that the directory containing your 'xunit.dll' reference also contains xUnit's
test runner files ('xunit.dll.tdnet', 'xunit.runner.tdnet.dll' etc.)

For earlier versions:
You need to install support for TestDriven.Net using xUnit's 'xunit.installer.exe' application.

You can find xUnit.net downloads and support here:
http://www.codeplex.com/xunit

我尝试按照建议进行操作,即我复制了文件

xunit.dll.tdnet
xunit.extensions.dll
xunit.gui.clr4.exe
xunit.runner.tdnet.dll
xunit.runner.utility.dll
xunit.runner.utility.xml
xunit.xml

到带有 xunit.dll 的文件夹,然后我运行xunit.installer.exe. 我怎样才能让它工作?

4

2 回答 2

3

我刚刚发现我忘记在 F# 中使测试成为一个函数(所以它只是一个值)。但是,错误消息不能更具误导性!

于 2012-06-14T10:20:45.617 回答
1

你有两个问题:

  1. 你的事实被打破了:-

    如果您将鼠标悬停在

    please work

    位,你会看到类似的东西:unit -> int

    对于Fact要被 xUnit 运行器拾取的 a,它需要产生 `unit (void)。

    因此,首先要做好的一个关键是不返回任何东西。换句话说,将您的替换123()(或断言)。

    您可以通过在测试中做出规定来防止这种情况:unit:-

    [<Fact>]
    let ``please work`` () : unit = 123
    

    这将强制编译错误。

  2. TestDriven.NET报告它找不到 xunit.tdnet 模块

    首先正确完成第 1 步至关重要。然后重试,问题应该消失了

    如果还剩...

    尝试使用基于 VS 的运行程序,只要它已安装并且 xunit.dll 进入您的输出目录就可以工作,或者查看您的 TD.NET 版本的文档以获取详细的故障排除说明(执行摘要是 .tdnet 文件在你的输出目录中,或者你从包含它应该工作的包的文件夹中撤消并重做 xunit.installer,尤其是如果你是最新的)

于 2013-12-03T02:58:31.167 回答