我有一大堆NUnit测试;我需要将给定运行的结果导入数据库,然后表征结果集并将其呈现给用户(电子邮件用于测试失败,Web表示用于检查结果)。我需要跟踪多次运行(随着时间的推移报告故障率等)。
XML将是nunit-console生成的XML。我想将XML简单地导入到某个数据库中,然后可以用来保存和显示结果。我们将有许多自定义类别,我们也需要能够分类。
是否有人知道可以处理导入此类数据的数据库架构,这些数据可以根据我们的个性化需求进行定制?这种类型的问题似乎应该是常见的,因此应该存在一个共同的解决方案,但我似乎无法找到它。如果有人之前已经实施过这样的解决方案,建议也会受到赞赏。
答案 0 :(得分:4)
听起来像你实际上是在使用CruiseControl.NET或TeamCity之类的构建服务器之后。
让构建服务器运行测试,它可以告诉人们失败的原因以及原因。
我推荐TeamCity,因为它的设置容易了几个数量级。
答案 1 :(得分:2)
我在这里寻求解决同样的问题。我们目前倾向于编写一个XSLT来将XML结果转换为insert语句。然后通过命令行SQL解释器运行insert语句的结果文件。理想情况下,我宁愿有一个NUnit加载项/扩展来为我处理所有这些。不幸的是我找不到一个。
答案 2 :(得分:1)
为了建立IainMH的答案你可能想看看使用Trac和BITTEN,它是一个开源构建系统,可以运行n单元测试并报告结果。我目前使用它来实现这一功能。
答案 3 :(得分:1)
使用MS SQL时,可以将所有XML导入[xml]数据类型的公共列。在此之后,可以执行xpath,搜索和转换。
答案 4 :(得分:1)
CruiseControl或TeamCity的另一个替代方案是Atlassians Bamboo,如果您现金紧张。我是他们软件的忠实粉丝,因为它易于使用,而且他们可以在10美元的价格买到竹子。
答案 5 :(得分:1)
我们希望避免这种情况,但我们已经从NUnit结果XML模式生成了数据库模式;然而,它有点不足,因为NUnit做了一些(不准确和奇怪的)处理来确定一些关键统计数据(例如,“忽略”与“未运行”)。
我们仍然希望找到一个不完整的CIT构建系统的架构/流程,它允许我们自定义数据库以导入结果,但是目前我们正在使用手动数据库,我们将使用需要进行大量自定义才能获得所需的报告。
答案 6 :(得分:-3)
为什么需要将结果存入数据库?谁会使用它们?失败的次数不能太大。如果是(反复)您的开发过程是错误的。修复过程。消除浪费(精益原则之一),不要收集它。
采取较小的步骤(较短的迭代,连续构建),消除依赖性。
这种做法并不常见,因为有这些问题的项目无法提供,但会被取消(最终)。
[编辑]迈克尔,在较长时间内跟踪nunit故障提供零值。您需要一个简短的反馈循环。现在解决问题。如果你等到你积累了很多问题,你就会被噪音所淹没。
良好的问题跟踪是在正确的(可能的最高抽象)级别完成的。绝对不是单元测试。