问题标签 [fitsharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
130 浏览

c# - 在被测系统上调用方法

使用时,DoFixture我可以将域对象设置为System Under Test,这允许我调用该对象而不是夹具本身的方法。

不幸的是,如果这样的方法需要多个参数,我必须将这些参数与空单元格分开,否则 Fitnesse/fitSharp 使用奇数/偶数单元格来构建方法名称。我可以看到这如何使我的测试更类似于简单的英语,但是仅仅为了满足测试框架的要求而开始重命名域对象方法并不可行。

例如,假设我想调用方法Entry AddEntry(string name, string description)并将结果存储为 symbol e1。如果我尝试下表:

它将尝试找到一个名为的方法并将AddEntrySampleDescription其传递给单个参数"sample name"

我可以

但它看起来不正确。

所以,我最终做的是(注意参数之间的额外空单元格)

它可以满足我的要求并且不像选项#2那样丑陋,但它仍然看起来像一个黑客。我错过了什么,或者这实际上是在域对象上调用方法的方式吗?

0 投票
1 回答
48 浏览

c# - FitSharp 中的 MemberMissingException

当在 a 中使用 SUTDoFixture来探索其行为时,对固定方法的第一次调用成功,但在调用 SUT 方法后失败:

截屏

Runner.exefit.dll和fixture dll都位于同一个文件夹中。

0 投票
1 回答
80 浏览

c# - 直到 FitSharp 中的脚本结束才调用 BackgroundWorker 事件处理程序

我正在努力编写一个夹具来测试使用 BackgroundWorker 线程的 C# 应用程序。任何帮助将非常感激!

细节

我正在编写夹具以使用 FitNesse (v20150814)和 Fitsharp (v2.2.4498.25493)测试多线程 C# 应用程序( .NETv4) 。

在 ViewModel 中,后台工作人员设置如下:

然后,在用户交互期间,worker 被启动:

在交互模式下,这工作正常,事件处理程序按预期调用。

但是,当我使用 FitNesse 夹具启动 Run() 命令时,只会按预期调用 DoWorkEventHandler。

直到测试结束时才会调用其他处理程序(ProgressChanged、RunWorkerCompleted),此时可能 FitSharp 线程也正在完成。

由于关键工作是其他处理程序的节点,因此我无法测试后台工作人员的工作结果。

一位同事建议重新构建应用程序,以便所有工作都在 DoWork 事件处理程序中完成,这样可以工作,但如果可以避免的话,我真的不想重新设计应用程序。


附加信息

我分析了线程和调用堆栈,并绘制了一个图表来显示正在发生的事情。

问题是 fitSharp 测试模块在我的工作线程(最右侧)上调用最终事件处理程序之前已打包并完成。

序列图

序列图就是基于这个线程信息信息。如果需要,我可以发布更多详细信息,并为线程图像中的死记硬背道歉,但我只能发布 2 个链接...

0 投票
1 回答
43 浏览

fitnesse - .NET 中的 Rowfixture 使用 Inputs 调用 Web 服务并验证响应对象

我针对 .NET 实施了以下 FitNesse 测试。它使用“RowFixture”返回一个经过验证的对象。这一切正常。

我的问题是,如何将“输入”从 FIT 测试传递给数组?目前,这是内部硬编码的。

这是FIT测试:

这是代码:

感谢帮助。

0 投票
1 回答
102 浏览

fitnesse - Fitnesse 找不到课程,除非它有 wiki 页面

我在尝试使用 Fitnesse 设置 ActionFixture 测试时遇到了一些奇怪的行为(使用 FitSharp 作为测试运行器)

创建 actionFixture 时,我会收到一个错误,即找不到类(下面示例中的 Namespace.TestClassName)。如果我为它创建一个 wiki 页面,测试将起作用。

每个班级都需要一个页面吗?如果是这样,我可以为所有测试引用同一页面(层次结构中的不同位置)吗?

抱歉这个天真的问题,我肯定在这里遗漏了一些简单的东西。

0 投票
3 回答
3119 浏览

fitnesse - FitClient:外部进程在建立连接之前终止

在执行一个简单的 Fitnesse 测试时,我收到了错误:

“FitClient:外部进程在建立连接之前终止。”

在 Fitnesse 服务器上,错误是:

“软件导致连接中止套接字写入错误”

使用的 .Net 版本 - 4.0

页面内容:

有没有人遇到过这个问题,也可以让我知道如何解决这个问题

错误

System.ArgumentException:字符串的长度不能为零。在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblySecurityRef, Evidence assembly , RuntimeAssembly reqAssembly, StackCrawlMark & stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean for Introspection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean for Introspection,

0 投票
2 回答
575 浏览

installation - 如何调试 Fitnesse 设置

我将 Fitnesse 与 Michael Sorens 文章的 CleanCodeFixtures 一起使用, Acceptance Testing with Fitnesse
我认为代码是正确的,Fitnesse 页面是正确的,这与我的设置有关。

概述
Michael 的 Fitnesse 页面是指没有“Fixture”后缀的灯具。在许多地方,这很好用,但在许多地方却不行。
CleanCodeFixtures.Common.Diagnostic 与 CleanCodeFixtures.Common.DiagnosticFixture 相对。
如何调试这种情况?

DETAILS
!path 在 Fitnesse\FitNesseRoot\content.txt 中,而 dll 在正确的目录中。根据 ProcMon 的说法,它正在寻找 dll。

它仍然无法在 dll 中找到固定装置。

文件 Fitnesse\FitNesseRoot\CleanCode\SuiteSetUp\content.txt 包含

它抱怨找不到固定装置。

找不到夹具:CleanCodeFixtures.Common.Diagnostic。
找不到夹具:导入。
找不到夹具:调试器。

在第一行之前添加这个

似乎工作,但似乎没有改变任何东西。当它使用下一个表中的诊断类时,它会得到相同的错误。

CleanCodeFixtures.Common.Diagnostic
找不到夹具:CleanCodeFixtures.Common.Diagnostic。

我不知道它如何找到 DLL 但找不到任何固定装置。

该代码有一个 Diagnostic 类和一个 DiagnosticFixture 类。

...

更改 Fitnesse 页面以明确引用 DiagnosticFixture 是有效的,但没有解释为什么它在没有它的情况下适用于许多其他固定装置。
关于如何调试的任何想法?

0 投票
1 回答
134 浏览

.net - 如何处理用户停止 FitNesse 测试(超薄表)

我有一个自定义表格夹具(针对 SLIM),它通过以下方式处理输入表格;

我试图弄清楚如何处理用户按下 FitNesse 测试页面上的 [停止测试] 按钮,以便我可以优雅地处理我的测试所拥有的资源。

也许还有另一种方法,苗条的跑步者会为此动态找到。

正在通过 FitSharp 运行测试

0 投票
1 回答
481 浏览

c# - 我如何使用.Net在fitnesse中编写BDD场景,例如Given when then format using Fitsharp

我们需要在 Given When Then (Gherkin) 中的 Fitnesse 中编写场景。有没有办法做到这一点?就像在 java GivWenZen

我们在.Net 4.0中使用Fitsharp使用fitnesse。

场景:现有的 Fitnesse 表-

这是上述场景的代码

错误 -

没有错误我的场景在执行时被忽略请看这个快照

健身结果

0 投票
1 回答
135 浏览

fitnesse - 在 FitNesse 中,我如何仅为一个套件运行套件设置代码?

我想在特定套件的开头运行一些套件设置代码。据我了解,一个套件将运行一个 SuiteSetUp 页面,该页面是它的兄弟(即在它旁边,在同一个文件夹中)。但是,这意味着相同的 SuiteSetUp 页面也将由同一文件夹中的其他套件运行。

如何制作仅由单个套件(例如 SuiteA)运行而被与 SuiteA 位于同一文件夹中的其他套件忽略的 SuiteSetUp 页面?

如果 SuiteSetUp 页面不是执行此操作的最佳方式,那是什么?我只想在套件开始时运行一次代码,而不是在每个测试开始时运行一次,所以我不想将代码添加到测试设置页面。

我假设我不能只将设置代码添加到套件中的第一个测试页面。根据我的阅读,似乎无法保证套件中测试的执行顺序,因此套件中的第一个测试页面可能并不总是在其他测试之前执行。