1

我有一个简单的 C# Column 夹具类,可以独立测试。我有一个 sql server 表,它再次独立测试良好。如果我同时测试两者,首先测试 SQL 表,再次一切正常。但是,如果我先测试 C#,则 SQL 测试失败“在程序集中找不到类型‘连接’”

所以这很好用......

!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|
4

1 回答 1

1

更新:下面描述的原始解决方案不适用于 DbFit。这是一种解决方法:

在您的 fixture 中SampleDo,您可以包含以下内容以SqlServerTest处理测试中的其余表:

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

原答案:

使用 DbFit 时,表

!|dbfit.SqlServerTest|

通常是测试中的第一个表,因此它成为“被测系统”和后续表,如

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

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

如果它不是第一个表,则其他内容将是“被测系统”,在您的情况下, FitNesse 将在 上SampleDo查找方法。要使“被测系统”部分通过测试,请使用 with 关键字:ConnectSampleDoSqlServerTest

!|with|new|dbfit.SqlServerTest|
于 2017-01-23T22:08:41.813 回答