问题标签 [aunit]

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 投票
2 回答
632 浏览

unit-testing - Ada:重定向到标准输出时省略换行符(测试 Put)

我正在尝试使用简单的Ada.Text_IO.Put. 为简单起见,这是我想测试的一种虚构方法:

在我的 AUnit 测试中,我有:

不幸的是,结果是:

似乎 Ada 自动在文件末尾添加了一个换行符。我意识到我可以将 (CR)LF 添加到我的预期字符串中,如下所示:

但是 a) 更改我预期的字符串感觉不对,b) 这将在 Windows 机器上运行,但在 Unix/Linux/Mac 上我必须删除“CR”。换句话说,我的测试运行是否成功取决于平台,而我的代码不是,这很糟糕。

所以我的问题是:如何在附加换行符的情况下写入文件?关于如何测试输出的其他建议也非常受欢迎。

我已经看到了这个相关的问题,但无法从中推断出任何有用的信息,除了我可能会尝试Append_File而不是Out_File模式,这并没有解决我的问题。

0 投票
1 回答
563 浏览

ada - 在哪里下载 AUnit 3(用于 Ada)?

哪里可以下载 Ada(特别是 GNAT-4.9)的 AUnit(AFAIK,最新版本是 3)?

我不在乎这个 AUnit 是否获得 GPL 许可,因为它仅用于我的测试程序,测试程序的许可无关紧要。

我有一个 Debian 系统gnat-4.9libaunit2-dev此版本的 GNAT 不安装该软件包。似乎libaunit2-dev是 AUnit 1 而不是 AUnit 3。我更喜欢最新版本。

0 投票
1 回答
479 浏览

unit-testing - 使用 GNAT 测试时如何为函数添加第二个测试?

Gnat测试的文档展示了如何生成线束和骨架单元测试。它为目标项目中的每个公共函数创建一个单元测试,但是如果我添加另一个单元测试,当我重新生成线束和骨架单元测试时,它会被覆盖。

在 gnattest 提供的简单示例项目中,如何添加另一个测试?我试过了:

(1) 将另一个 Assert 行添加到已经存在的测试函数中。这行得通,但不是好的做法;第一个失败的测试会阻止其他测试运行。

(2)在obj/gnattest/harness/gnattest.xml中添加函数定义,然后重新生成测试不起作用;xml 文件在用于创建测试存根之前重新生成。

(3) 通过以下更改手动将定义添加到测试/和利用/,这些更改会因重新生成测试而受到破坏。

将此添加到 obj/gnattest/tests/simple-test_data-tests.ads:

将此添加到 obj/gnattest/tests/simple-test_data-tests.adb:

将声明添加到第 16 行,并将 create 和 add_test 添加到 obj/gnattest/harness/simple-test_data-tests-suite.adb 中的 Suite 函数:

要重新编译,不要使用 Makefile,因为这会破坏更改。相反,运行

必须有更好的方法。

0 投票
3 回答
58 浏览

apama - 对于给定的示例 Apama 项目,Aunit 测试返回被阻止

我正在尝试在 apama 中使用AUnit进行单元测试。所以我检查并阅读了 Aunit 包在后端使用 Apama Pysys 来测试 Apama 应用程序。

虽然我成功构建了 Aunit 包,但在测试随它提供的示例 Apama 监视器时出现错误。我不断收到警告:

此警告将测试用例的结果显示为 BLOCKED。

0 投票
1 回答
185 浏览

ada - 如何指定 GNATTest 应该自动生成测试用例的函数或过程

我正在研究一个巨大的代码包(主要用 ada 编写),这非常混乱。到目前为止,没有应用单元测试,并且对于所有现有代码,不得实施单元测试。但是我们的团队决定,所有新代码都应该与测试一起实现。在 GPS 中,可以让 GNATtest 为项目中的所有功能和程序自动生成测试程序。但正如所写,我们必须从这个自动生成中排除所有旧代码。

有没有办法将功能和过程标记为“需要测试”?

0 投票
2 回答
101 浏览

ada - GNAT 附带的 AUnit 中的错误

我相信我已经发现并修复了 AUnit 中的一个错误,它是 Ada 的 GNAT 编译器工具的一部分。

向 AdaCore 提交 GNAT 工具社区版本的错误的最佳方式是什么?

以下程序使用当前版本的编译器 GNAT Community 2020 (20200429-84) 静默中止

该错误位于文件 aunit.adb 中的 Message_Free 过程中。以下是补丁版本。更改是调用 AUnit.Memory.AUnit_Free 的参数。

0 投票
2 回答
77 浏览

unit-testing - 为每个测试调用的 Ada AUnit 过程 Set_Up_Case 和 Tear_Down_Case

我正在基于 aunit 的现有套件中的 Ada 应用程序中进行单元测试。根据他们的文档和代码,程序:Set_Up_Case 和 Tear_Down_Case 应该只在测试例程集之前运行。但是,当我运行单元测试(特定类或 SmokeTests)时,我看到它们在每次测试之前和之后运行。剥离输出:

那么我怎样才能得到记录的行为呢?