2012-06-14 69 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,尤其是上最新的)

相關問題