问题标签 [dunit]

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

delphi - 使用 teamcity 的 Delphi 单元测试覆盖率

这可能是一个愚蠢的问题,但我可以在任何地方找到任何答案。我正在设置 teamcity CI 来构建我的 delphi 项目,并试图让 teamcity 运行我的 DUnit 测试并在 teamcity 构建日志 UI 中显示输出,但我不知道如何让它工作。

任何建议或指导将不胜感激。

编辑:如果可行,将发布一个可能的解决方案。

我找到了一个解决方案,我必须强制项目中的单元测试运行程序在命令运行程序而不是 GUIRunner 中运行,他们的 teamcity 都像吃药的狗一样开心。

谢谢您的帮助!

问候尼科

0 投票
2 回答
103 浏览

delphi - DUnit的XPObserver.pas中TXPSubject.DeleteObserver和TXPSubject.DeleteObservers有区别的原因?

我很难理解为什么 XPObserver.pas 中的 TXPSubject.DeleteObserver 和 TXPSubject.DeleteObservers 的实现不同的原因?具体来说,“Dispose”和“ReleaseSubject”调用的不同顺序,以及不同顺序对 TXPSubject.DeleteObserver 很重要的原因。有问题的代码被提取并显示在下面。该文件可从 DUnit 获得。

0 投票
3 回答
2989 浏览

delphi - Delphi -> 禁用来自外部单元的已弃用警告

我有一个 XE2 测试项目(DUnit)。所有工作和编译都很好。但是,我们有一个警告我无法消除:

然而问题是这段代码来自与 XE2 捆绑的 GUITestRunner:**

\Embarcadero\RAD Studio\9.0\source\DUnit\src**GUITestRunner**

**。

我确实尝试{$WARN SYMBOL_DEPRECATED OFF}在我们的 .dpr 文件中使用。但是,这仅适用于当前程序集。

除了篡改 XE2 捆绑的代码之外,您知道有什么方法可以消除该警告吗?

非常感谢!

0 投票
3 回答
2058 浏览

delphi - DUnit 无法创建表单。当前没有 MDI 表单处于活动状态

嘿,我在 Delphi XE3 中的单元测试有问题我有一个项目,该项目由 1 个 MDIForm 和分配的 MDIChild 表单组成,那么问题是当我在 MDIChild 表单上运行测试时出现此错误:

我的设置方法如下所示:

我能做些什么来解决这个错误?到目前为止我试过:

我的测试是:

演示项目:这里

0 投票
1 回答
489 浏览

delphi - 我应该在我的 Delphi 7 项目中包含 DUnit 单元吗?

我有一个为 Delphi 7 编写的遗留项目。我即将将一堆新代码集成到其中,其中包括一个使用 DUnit 的测试套件。DUnit 它不是 Delphi 7 的一部分(它后来被集成),所以这里的问题是:我应该将 DUnit 单元包含到我的项目中(将它们检查到版本控制等中)还是我应该更好地要求所有参与的开发人员维护他们的独立DUnit 安装?

该项目是封闭源代码,仅在我工作的企业内编写和部署——也就是说,项目源代码不会交付给任何消费者。

0 投票
1 回答
473 浏览

testing - 旧 C++Builder 版本上的 DUnit?

我们目前正在将在 C++Builder 5 下开发的源代码迁移到较新的 Embarcadero 的 XE5。展望未来,我们希望在 C++Builder5 下编写我们的单元测试,理想情况下,它在迁移后功能齐全,几乎不需要维护。

不过,我的问题很简单。是否可以在 C++Builder 5 上使用与 Embarcadero 相同的 DUnit 框架?如果是这样,您能给我们一些提示吗?

谢谢你。

0 投票
1 回答
499 浏览

c++builder - 在 embarcadero c++ builder Dunit 测试项目中链接 obj 文件

我在 embarcadero c++ builder 2010 中向 DUnit Test 项目添加了一个测试用例。我可以很好地编译它,但链接器无法对原始项目的 .obj 文件中的方法说“未解析的外部”。如果我将 .obj 文件添加到 DUnit 项目中,它可以正常工作。但是我不想这样做,因为原始项目中有大量的 .obj 文件,每次你想测试一个新类时添加 .obj 文件会很痛苦。有没有办法将链接器指向搜索目录以查找 .obj 文件并从那里获取它们。(我没有使用命令行,而是使用 c++ builder 2010 IDE)。

0 投票
1 回答
1194 浏览

delphi - DUnit:“全局”设置和拆卸

在 DUnit 中,SetUp每个测试方法执行TearDown之前(和之后)调用。 在中,我创建了一个从文件加载数据的对象。这很慢,特别是如果我有很多测试。 在执行所有测试之前有什么方法可以调用一次(对于 显然是相同的)?
SetUp
SetUpTearDown

0 投票
1 回答
753 浏览

string - Delphi 将字符串传递给过程得到访问冲突错误

我目前正在尝试创建一个测试过程并将其传递给一个字符串。该函数检查字符串是否相等。问题是,当测试运行时,我在过程中传递的字符串上收到 EAccessViolation 访问冲突错误。我知道这是一个内存声明问题,但我不知道如何解决它。

这是我的代码:

宣布

称呼

程序

我是delphi的新手,所以如果有什么我遗漏的,请告诉我。请在回复中具体说明。谢谢你。

0 投票
1 回答
516 浏览

unit-testing - 如何使用 DUnit 模拟 Spring4D 事件

我正在努力用 DUnit 成功模拟 Spring4d 事件。

事实上,我更多的是嘲笑一个模拟返回一个事件的模拟......

这是基本结构。

TMyObject 有一个属性 EventContainer : IEventContainer

IEventContainer 有一个属性 Event : IMyEvent

我想嘲讽

我测试了我能想到的每一种可能性。我要么得到 AV,要么得到无效的演员表。我把源代码放在下面。如果有人可以帮助我完成这项工作,那就太好了!