我使用Fitnesse与Michael Sorens的CleanCodeFixtures文章,
Acceptance Testing with Fitnesse。
我认为代码是正确的,Fitnesse页面是正确的,这是我的设置。
概览
Michael的Fitnesse页面指的是没有" Fixture"后缀。在许多地方,这种方法很好,但在许多地方它并没有
CleanCodeFixtures.Common.Diagnostic而不是CleanCodeFixtures.Common.DiagnosticFixture。
如何调试这种情况?
详情
!path位于Fitnesse \ FitNesseRoot \ content.txt中,dll位于正确的目录中。根据ProcMon,它正在寻找dll。
!note .NET References
!path fitsharp\dbfit.dll
!path fitsharp\dbfit.sqlserver.dll
!path Fixtures\CleanCodeFixtures.dll
!path fitsharp\fit.dll
它仍然无法在dll中找到夹具。
文件Fitnesse \ FitNesseRoot \ CleanCode \ SuiteSetUp \ content.txt包含
!|CleanCodeFixtures.Common.Diagnostic|
|Begin |
|${PAGE_NAME} |
!|import |
|dbfit.fixture |
|CleanCodeFixtures.Common |
|CleanCodeFixtures.ControlFlow|
|CleanCodeFixtures.Database |
!note This allows enabling/disabling debugging with the external command files !-EnableDebug.cmd and DisableDebug.cmd-!.
!|Debugger |
|Launch With External Trigger|
| |
它抱怨它无法找到固定装置。
找不到夹具:CleanCodeFixtures.Common.Diagnostic。
找不到夹具:导入。
找不到夹具:调试器。
在第一行之前添加此内容
!|Import | ## note that it is case sensitive
|CleanCodeFixtures.Common.Diagnostic|
似乎工作但似乎没有改变任何事情。当它在下一个表中使用Diagnostic类时,它会得到相同的错误。
CleanCodeFixtures.Common.Diagnostic
找不到夹具:CleanCodeFixtures.Common.Diagnostic。
我无法弄清楚如何找到DLL而找不到任何固定装置。
代码有一个Diagnostic类和一个DiagnosticFixture类。
namespace CleanCodeFixtures.Common
{
public class Diagnostic
...
namespace CleanCodeFixtures.Common
{
public class DiagnosticFixture : ColumnFixture
更改Fitnesse页面以引用DiagnosticFixture明确有效,但没有解释为什么没有它可用于许多其他灯具。
有关如何调试这个的想法吗?
答案 0 :(得分:0)
检查您的类路径设置以进行测试执行。如果使用外部依赖项,则需要使用!path
语句将测试执行指向正确的位置以查找依赖项。尝试在测试页面上放置这样的东西(或层次结构中的东西):
!path /path/to/your.dll
在此之后,测试应该能够在类路径中找到夹具,但是从您发布的代码中,您似乎没有将夹具导入测试用例。要做到这一点:
!|import |
|CleanCodeFixtures.Common.Diagnostic|
如果这两个步骤无法解决,请发布完整的测试页代码。
答案 1 :(得分:0)
正在使用的术语是维基词。 "字数"会找到WordCountFixture但是" Diagnostic"找不到DiagnosticFixture。 将它变成维基词,[诊断],似乎已经解决了。
不确定为什么它适用于Micheal等人。似乎仍然是错误的解决方案。但它对我有用。我可以使用维基词或明确指定Fixture前进。