dbfit 中的错误 运行 .Net 和 SQL 测试

Error running .Net and SQL tests in dbfit

我有一个简单的 C# Column fixture class 可以独立测试。 我有一个 sql 服务器 table 再次独立测试正常。 如果我同时测试两者,首先测试 SQL table,一切都正常。 但是,如果我先测试 C#,那么 SQL 测试会失败 'Type 'Connect' not found in assemblies'

所以这很好用...

!define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer %p}
!define TEST_RUNNER {fitsharp\Runner.exe}
!define PATH_SEPARATOR {;}

!path fitsharp/fit.dll
!path fitsharp/dbfit.sqlserver.dll

!|dbfit.SqlServerTest|
!|Connect|Data Source=localhost;integrated security=SSPI;Initial     Catalog=Test2|
!|Query| select Colour from dbo.Colour|
|Colour|
|yellow-orange|

!path Fixtures.dll

!|Fixtures.SampleDo|
|firstPart|secondPart|together?|totalLength?|
|Hello|World|Hello, World|10|
|Houston|We Have a Problem|Houston, We Have a Problem|24|

...但是通过简单地移动 Fixtures.dll 测试就失败了...

!define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer %p}
!define TEST_RUNNER {fitsharp\Runner.exe}
!define PATH_SEPARATOR {;}

!path Fixtures.dll

!|Fixtures.SampleDo|
|firstPart|secondPart|together?|totalLength?|
|Hello|World|Hello, World|10|
|Houston|We Have a Problem|Houston, We Have a Problem|24|

!path fitsharp/fit.dll
!path fitsharp/dbfit.sqlserver.dll

!|dbfit.SqlServerTest|
!|Connect|Data Source=localhost;integrated security=SSPI;Initial     Catalog=Test2|
!|Query| select Colour from dbo.Colour|
|Colour|
|yellow-orange|

更新:下面介绍的原始解决方案不适用于DbFit。这是一个解决方法:

在您的夹具 SampleDo 中,您可以包含以下内容,让 SqlServerTest 处理测试中剩余的 table:

public override bool IsVisible { get { return false; } }

原回答:

使用 DbFit 时,table

!|dbfit.SqlServerTest|

通常是测试中的第一个 table,因此它变成了 "System Under Test" 和随后的 table,如

!|Connect|Data Source=localhost;integrated security=SSPI;Initial     Catalog=Test2|

被解释为要在 SqlServerTest 上执行的方法。

如果不是第一个 table,其他的将是 "System Under Test",在您的情况下,SampleDo,FitNesse 将寻找方法 ConnectSampleDo 上。要使 SqlServerTest 成为 "System Under Test" 通过测试的一部分,请使用 with 关键字:

!|with|new|dbfit.SqlServerTest|