7

我有大量的 NUnit 测试;我需要将给定运行的结果导入数据库,然后表征结果集并将其呈现给用户(测试失败时发送电子邮件,检查结果时使用 Web 演示文稿)。我还需要随时间跟踪多次运行(用于报告随时间变化的故障率等)。

XML 将是 nunit-console 生成的 XML。我想以最少的麻烦将 XML 导入某个数据库,然后可以使用该数据库来持久化和呈现结果。我们将有许多自定义类别,我们也需要能够对其进行排序。

有谁知道可以处理导入可以根据我们的个人需求定制的此类数据的数据库模式?这种类型的问题似乎应该很常见,因此应该存在一个通用的解决方案,但我似乎找不到一个。如果有人以前实施过这样的解决方案,也将不胜感激。

4

7 回答 7

4

在我看来,您实际上是在使用CruiseControl.NETTeamCity等构建服务器。

让构建服务器运行测试,它会告诉人们失败的原因和原因。

我推荐 TeamCity,因为它更容易设置几个数量级。

于 2009-04-23T17:36:52.683 回答
2

我在这里寻求解决同样的问题。我们目前倾向于编写一个 XSLT 来将 XML 结果转换为插入语句。然后通过命令行 SQL 解释器运行插入语句的结果文件。理想情况下,我宁愿有一个 NUnit 插件/扩展来为我处理所有这些。不幸的是,我一直找不到。

于 2009-12-07T17:15:44.540 回答
1

要构建 IainMH 的答案,您可能想看看将 Trac 与BITTEN 结合使用,它是一个开源构建系统,可以运行 n 单元测试并报告结果。我目前将它用于那个确切的功能。

于 2009-12-07T17:31:44.247 回答
1

使用 MS SQL 时,您可以将所有 XML 导入 [xml] 数据类型的公共列。在此基础上,可以执行 xpath、搜索和转换。

于 2009-12-08T10:18:28.837 回答
1

如果您手头拮据,CruiseControl 或 TeamCity 的另一种选择是Atlassians Bamboo 。我是他们软件的忠实粉丝,因为它易于使用,而且他们有一个交易,你可以花 10 美元买到竹子。

于 2009-12-10T16:56:39.603 回答
1

我们希望避免这种情况,但我们已经从 NUnit 结果 XML 模式生成了一个数据库模式;然而,它有点不足,因为 NUnit 做了一些(不准确和奇怪的)处理来确定一些关键的统计信息(例如,“忽略”与“不运行”)。

我们仍然希望找到一个不是完整的 CIT 构建系统的模式/流程,它可以让我们自定义一个用于导入结果的数据库,但目前我们正在使用一个手动数据库,我们需要这样做大量定制以获得所需的报告。

于 2010-05-21T20:07:18.017 回答
-3

为什么需要将结果保存在数据库中?谁将使用它们?失败的数量不能很大。如果是(反复)你的开发过程是错误的。修复过程。消除浪费(精益原则之一),不要收集它。

采取更小的步骤(更短的迭代,持续构建),消除依赖关系。

这并不常见,因为有这类问题的项目不会交付而是被取消(最终)。

[编辑] Michael,在较长时间内跟踪 nunit 故障提供零值。你需要一个简短的反馈循环。现在解决问题。如果你等到你积累了很多问题,你就会被噪音淹没。

好的问题跟踪是在正确的(最高可能的抽象)级别完成的。绝对不是单元测试。

于 2010-05-19T20:14:42.993 回答