问题标签 [gallio]

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 回答
311 浏览

boost - Boost.Test 或 cppUnit 是否有任何扩展可以提供 HTML 输出等?

我参与了我们项目的单元级测试用例的开发。有托管代码和本机 C++ 代码。经过一番研究,我选择了 NUnit 作为托管代码。我会使用 Gallio 或 FireBenchmarks,这是提供 HTML 输出和图表等的扩展。

我们对 cppUnit 或 Boost.Test 有这样的扩展吗?我还没有决定使用哪一个。如果没有,哪些更容易扩展以启用这样的插件?

请就此提出您的建议。

0 投票
1 回答
1798 浏览

.net - 执行集成测试时如何从 .Net 应用程序中隔离坏的 COM 组件 (HP Quality Center 10.0)

我目前正在开发一些基于 .Net 的软件(.Net Framework 3.5 SP1),它通过它的 COM 客户端 API(通常称为 TDApiOle80 或 TDApiOle80.TDConnection)与 HP Quality Center 10.0 集成。

我们正在使用 XUnit 1.6.1.1521 和 Gallio 3.1.397.0(从 msbuild 文件调用)

我们经历了一个过程:

  • 创建连接
  • 运行测试
  • 关闭连接
  • 处置
  • 强制 GC.Collection() / GC.AwaitingPendingFinalizers()

对于每个集成测试 - 每个集成测试都在其 Fact 中配置的超时运行。

我们遇到的问题是,它出现在几次测试(比如大约 10 次左右)之后,质量中心在调用时会无限期阻塞 - 整个 Gallio 冻结并且不再响应。

最初我们发现 xunit.net 仅将它的超时应用于事实中的代码 - 所以它会无限期地等待构造函数或处置方法完成 - 所以我们将该逻辑移动到测试主体中只是为了确认......但是这还没有解决问题(运行一定数量的测试后仍然会挂起)。

使用 TestDriven.Net 时也会发生同样的事情 - 可以交互地运行 1 个或几个测试,但超过 10 个测试并且整个运行冻结 - 我们唯一的选择是终止 TD.Net 使用的 ProcessInvocation86.exe 进程。

有没有人有关于如何阻止这种情况发生的任何提示/技巧,或者至少将我的集成测试与这些类型的问题隔离开来——以便 QC API 无限期阻塞的测试,测试将因超时而失败并且让加里奥进入下一个测试。

更新

使用 STA 线程的提示有助于将问题向前推进一点 - 通过自定义 XUnit.Net 属性,我们现在在它自己的 STA 线程中启动测试。这已经阻止了 Gallio/TestDriven.Net 完全锁定,因此我们可以在我们的 hudson 构建服务器上运行集成测试。

相反,我们现在在使用 TestDriven.Net 运行测试时会看到这样的输出 - 顺便说一下,运行同一个套件几次将导致所有测试通过,或者通常只有一两个测试失败。在第一次失败后,第二次失败会导致“卸载 appdomain 时出错”问题。

测试“IntegrationTests.Execute_Test1”失败:超过测试执行时间:30000 毫秒

测试“T:IntegrationTests.Execute_Test2”失败:卸载 appdomain 时出错。(来自 HRESULT 的异常:0x80131015) System.CannotUnloadAppDomainException:卸载 appdomain 时出错。(来自 HRESULT 的异常:0x80131015)在 System.AppDomain.Unload(AppDomain 域)在 Xunit.ExecutorWrapper.Dispose() 在 Xunit.Runner.TdNet.TdNetRunner.TestDriven.Framework.ITestRunner.RunMember(ITestListener 侦听器,程序集程序集,MemberInfo 成员) 在 TestDriven.TestRunner.ThreadTestRunner.Runner.Run() 的 TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener, ITraceListener traceListener, String assemblyPath, String testPath)

4 次通过,2 次失败,0 次跳过,耗时 50.42 秒(xunit)。

我还没有确定为什么 Quality Center API 会无限期地随机挂起 - 不久将对此进行进一步调查。

2010 年 7 月 27 日更新

我终于确定了挂起的原因 - 这是有问题的代码:

似乎在 ConnectProjectEx 之后调用 Connect 有可能被阻塞(但它是不确定的)。删除冗余连接调用似乎显着提高了测试的稳定性 - 正确的连接代码:

继承了代码库后,我没有过多考虑连接代码。

我还没有弄清楚的一件事是为什么即使使用上面包含的超时代码, Thread.Join(timeout) 也永远不会返回。您可以附加一个调试器,它只显示测试线程处于加入/等待操作中。也许与在 STA 线程中执行有关?

0 投票
1 回答
666 浏览

c# - 如何将 Xml 数据作为参数传递给 mbunit v3 中的测试

我正在阅读这篇文章中关于使用 mbunit 进行数据驱动测试的内容。 http://blog.benhall.me.uk/2007/04/mbunit-datafixture-data-driven-unit.html 我现在正在使用 mbunit 的 v3,并且根据版本,用于 DataDriven 测试的属性不适用于 V3 V3 的注释。使用这篇文章http://blog.bits-in-motion.com/2009/03/announcing-gallio-and-mbunit-v306.html,我能够使用 xml 数据源进行数据驱动测试。但我必须对每个参数使用 [Bind("price")]。在 V2 中,有一种方法可以在 ForEachTest 属性中指定类的数据类型,反序列化以包含 xml 数据。这样做我们可以将类的对象作为参数传递给测试方法。有没有办法在 v3 中做这样的事情?

0 投票
3 回答
1444 浏览

c# - mbunit v3 的文档

有关 mbunit v3 新功能的文档的任何指针?

0 投票
1 回答
1506 浏览

c# - selenium-rc 无法连接到远程服务器

我昨天遇到了一个奇怪的问题。我正在使用 selenium-rc 和 C# 来编写测试脚本。第一次,昨天,我开始收到错误“无法连接到远程服务器”。它似乎随机出现在代码的任何部分。例如,错误在语句中触发selenium.setspeed(2000);。在另一个脚本中,它在断言语句处触发。如果问题与与 selenium 服务器的连接有关,那么为什么它会执行其他 selenium 命令并仅在某些特定语句处引发错误。如果您需要有关该错误的更多具体信息,请告诉我。

有没有人处理过类似的错误?在这个方向上的任何帮助将不胜感激。

谢谢和问候,
Vamyip

0 投票
2 回答
548 浏览

c# - selenium rc 无法点击链接

我今天面临一个有点奇怪的问题。Selenium 似乎单击了一个测试用例中的链接,但在后续用例中忽略了相同的链接。这发生在测试用例的任何排列组合中。无论哪种情况第二次运行,由于上述问题而失败。任何人都可以为此提出解决方案吗?我试过 selenium.click 和 selenium.clickat。mouseup+mousedown 的组合即使在第一次使用时也不起作用。selenium.fireevent 似乎也没有任何区别。

真的卡在这了。有人可以帮忙吗????

谢谢和问候,
Vamyip

0 投票
2 回答
660 浏览

c# - 在 MBunit 测试中使用 app.config

我设置单元测试的方式是用户可以运行可执行文件并选择要使用的数据集。此信息存储在 app.config 中,但是当我在使用 Gallio Icarus 运行单元测试时尝试访问 app.config 时,它不起作用。

编辑:我得到了绑定到应用程序属性的字段但是当我调用Properties.Settings.Default.Save();它时似乎没有做任何事情。app.exe.config 不会更改,并且更改不会持续存在。

0 投票
2 回答
1685 浏览

c# - selenium 中的自定义 firefox 配置文件导致插件不兼容

现在这很棘手。我正在尝试使用 firefox 和 selenium 进行 WAP 测试。为此,我创建了一个自定义配置文件并安装了一个名为 modify headers 的插件。当我手动启动配置文件时,插件工作正常。但是,当我将它与 Selenium RC 一起使用时,Firefox 禁用了该插件,说它与 Firefox 3.6.6 不兼容。这太荒谬了。如果我手动打开相同的 Firefox 配置文件,插件可以正常工作。此外,当我更新插件(在​​ ff 启动的配置文件中)时,我安装了一个兼容性补丁,并且在重新启动 FF 后工作正常。但是,当我关闭 Firefox 并从 selenium 启动相同的配置文件时,它又会出现同样的问题。请帮忙,我的很多测试用例都是基于 WAP 的。您还可以建议此插件的替代方案。

感谢和问候
Vamyip

0 投票
1 回答
280 浏览

mbunit - 我可以将 MbUnit gui 与 Moles 测试一起使用吗?

我想设置我们的单元测试来使用 Moles——主要是因为我们不会在不需要接口的地方编写很多接口。好的,这部分是有争议的,但这是我们团队的一个问题。

为此,我们正在调查 Moles。痣很漂亮。Pex 很漂亮。问题是,如果我们构建一个使用 Moles 的单元测试,突然我们无法在 Gallio Icarus (MbUnit gui) 中运行它。有没有办法解决这个问题并让 Icarus 明白 Moles 是测试的一部分?

0 投票
2 回答
880 浏览

wcf - 使用 Gallio/MbUnit 对 WCF Web 服务进行单元测试

我有一个 WCF 服务,其中包含一个调用该服务的简单 Gallio 单元测试。但是,我对框架的行为感到困惑。当我第一次启动 Visual Studio 并尝试运行单元测试时,我收到以下错误:

System.ServiceModel.EndpointNotFoundException:在http://localhost:43671/MyService.svc/MyService上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。---> System.Net.WebException:无法连接到远程服务器 ---> System.Net.Sockets.SocketException:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:43671 错误代码:10061

但是,如果我在单元测试项目中右键单击服务引用并执行“更新服务引用”,则会出现一个弹出窗口,指出端口 43671 上的 ASP.NET 开发服务器已启动,并且单元测试工作正常。

如何将服务器启动代码添加到我的单元测试中,这样我每次想要运行单元测试时都不必“更新服务引用”?

谢谢。