Visual Studio 2012 Ultimate, update 3, v.11.0.60610.01
Visual F# 2012 04940-004-0038003-02527
TestDriven.Net 3.5 Beta 3 Personal
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FsUnit.xUnit" version="1.2.1.2" targetFramework="net45" />
<package id="xunit" version="1.9.1" targetFramework="net45" />
</packages>
xunit.installer.exe
\packages\FsUnit.xUnit.1.2.1.2
\packages\xunit.1.9.1
\packages\repositories.config
\packages\FsUnit.xUnit.1.2.1.2\Lib
\packages\FsUnit.xUnit.1.2.1.2\tools
\packages\FsUnit.xUnit.1.2.1.2\FsUnit.xUnit.1.2.1.2.nupkg
\packages\FsUnit.xUnit.1.2.1.2\FsUnit.xUnit.1.2.1.2.nuspec
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net20
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net40
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net20\FsUnit.CustomMatchers.dll
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net20\FsUnit.CustomMatchers.XML
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net20\FsUnit.Xunit.dll
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net20\FsUnit.Xunit.xml
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net20\NHamcrest.dll
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net40\FsUnit.CustomMatchers.dll
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net40\FsUnit.CustomMatchers.XML
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net40\FsUnit.Xunit.dll
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net40\FsUnit.Xunit.xml
\packages\FsUnit.xUnit.1.2.1.2\Lib\Net40\NHamcrest.dll
\packages\FsUnit.xUnit.1.2.1.2\tools\install.ps1
\packages\xunit.1.9.1\lib
\packages\xunit.1.9.1\xunit.1.9.1.nupkg
\packages\xunit.1.9.1\xunit.1.9.1.nuspec
\packages\xunit.1.9.1\lib\net20
\packages\xunit.1.9.1\lib\net20\xunit.dll
\packages\xunit.1.9.1\lib\net20\xunit.dll.tdnet
\packages\xunit.1.9.1\lib\net20\xunit.installer.exe
\packages\xunit.1.9.1\lib\net20\xunit.runner.msbuild.dll
\packages\xunit.1.9.1\lib\net20\xunit.runner.tdnet.dll
\packages\xunit.1.9.1\lib\net20\xunit.runner.utility.dll
\packages\xunit.1.9.1\lib\net20\xunit.xml
module MyTesting
open Xunit
open FsUnit.Xunit
[<Fact>]
let ``please work``() = 123
我仍然得到这个:
------ Test started: Assembly: MyTesting.dll ------
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
一个问题:
我做错了什么?
更新:
这是我在调试模式下运行时所说的内容:
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Program Files (x86)\TestDriven.NET 3\ProcessInvocation86.exe'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Program Files (x86)\TestDriven.NET 3\TestDriven.TestRunner.Server.dll'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Remoting\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Remoting.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Program Files (x86)\TestDriven.NET 3\TestDriven.TestRunner.dll'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Program Files (x86)\TestDriven.NET 3\TestDriven.Framework.dll'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Mine\MyProject\packages\xunit.1.9.1\lib\net20\xunit.runner.tdnet.dll'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Mine\MyProject\bin\Debug\MyProject.Testing.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Mine\MyProject\packages\xunit.1.9.1\lib\net20\xunit.runner.utility.dll'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'xunit.runner.utility.{Dynamic}'
A first chance exception of type 'System.ArgumentException' occurred in xunit.runner.utility.dll
The thread 'TestRunnerThread' (0x13b0) has exited with code 0 (0x0).
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Program Files (x86)\TestDriven.NET 3\AdHoc\TestDriven.AdHoc.dll'
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Mine\MyProject.Testing\bin\Debug\MyProject.Testing.dll', Symbols loaded.
'ProcessInvocation86.exe' (Managed (v4.0.30319)): Loaded 'C:\Mine\MyProject\MyProject.Testing\bin\Debug\xunit.dll'
The thread 'TestRunnerThread' (0x504) has exited with code 0 (0x0).
The program '[1136] ProcessInvocation86.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).
答案 0 :(得分:2)
我无法重复这一点。
这是我做的:
module FsTestSample open Xunit open FsUnit.Xunit [<Fact>] let ``please work``() = 123
我将光标置于“请工作”并右键单击,然后单击“运行测试”。测试运行了,输出结果为:
------ Test started: Assembly: FsTestSample.dll ------ 1 passed, 0 failed, 0 skipped, took 0.50 seconds (xUnit.net 1.9.1 build 1600).
我甚至将“= 123”更改为“= 123/0”只是为了验证测试是否以零除异常(它确实)失败。
答案 1 :(得分:1)
你有两个问题:
您的事实已经破裂: -
如果将鼠标悬停在
上 please work
位,您会看到类似:unit -> int
对于xUnit运行器选择的Fact
,它需要产生`unit(void)。
因此,首先要做的一件事就是不要退货。换句话说,请将123
替换为()
(或断言)。
您可以通过在测试中加上:unit
规定来防范这种情况: -
[<Fact>]
let ``please work`` () : unit = 123
这将强制编译错误。
TestDriven.NET 找不到xunit.tdnet模块
尝试基于VS的运行程序,只要它已安装并且xunit.dll到达您的输出目录,或者查看您的TD.NET版本的文档以获取详细的故障排除说明(exec摘要,如果.tdnet文件在你的目录中,或者从包含它应该正常工作的包的文件夹中撤消并重做xunit.installer,尤其是如果你最近的话)
答案 2 :(得分:0)
终于明白了。所以原因是包含项目的文件夹的路径中有一个#
符号(.. \ F#..)。我希望这可以为你节省一些麻烦。如果没有,原因不同,这就是你要做的事情:
Debug
&gt;&gt; Exceptions...
Common Language Runtime Exceptions
列中设置相应的复选框,启用Thrown
上的中断。[Right click on the test function]
&gt;&gt; Test with
&gt;&gt; Debugger