2012-06-14 24 views
2

我试图运行的xUnit测试(从F#模块,如果它使任何区别)使用TestDriven.NET,但无论我做什么我得到这个错误:从TestDriven.NET报告中运行F#xUnit Fact“看起来您正在尝试执行xUnit.net单元测试。”

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。我怎样才能使它工作?

+0

相关:http://stackoverflow.com/questions/20341250/xunit-tests-under-f-it-looks-like-youre-trying-to-execute-an-xunit-净单位/ 203 42834#20342834 –

回答

3

我刚刚发现我忘了在F#中测试一个函数(所以它只是一个值)。错误信息不能更具误导性!

+0

+1请不要被冒犯我的'竞争'后 - 这是一个倾倒的http://stackoverflow.com/questions/20341250/xunit-tests-under-f-it-looks-like-youre-试图执行一个xunit-net-unit/20341846#20341846我意识到这是Q/A的一个副本 –

1

你有两个问题:

  1. 你的事实被打破: -

    如果你将鼠标悬停在

    please work

    位,你将看到类似:unit -> int

    对于被xUnit跑步者选中,它需要产生`unit(void)。

    因此,首先要做的一件事就是不要返回任何东西。换句话说,将123替换为()(或断言)。

    您可以通过将一个:unit规定的测试防止这种情况: -

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

    这将迫使编译错误。

  2. TestDriven.NET是报告它无法找到xunit.tdnet模块

    这是关键的一步获得1右键第一。然后重试,问题应消失

    如果它仍然...

    可尝试在基于VS-亚军,因为它的安装应该只要工作,xunit.dll越来越到您的输出目录或看请参阅您的TD.NET版本的文档以获取详细的故障排除说明(如果您的.tdnet文件位于您的出口目录中,或者您从包含它应该正常工作的软件包的文件夹中撤消并重新生成了xunit.installer,尤其是上最新的)

相关问题