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 将寻找方法 Connect
在 SampleDo
上。要使 SqlServerTest
成为 "System Under Test" 通过测试的一部分,请使用 with 关键字:
!|with|new|dbfit.SqlServerTest|
我有一个简单的 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 将寻找方法 Connect
在 SampleDo
上。要使 SqlServerTest
成为 "System Under Test" 通过测试的一部分,请使用 with 关键字:
!|with|new|dbfit.SqlServerTest|