我目前正在使用 CppUnit 进行测试,但由于缺乏对Categories概念的支持而感到沮丧。是否有任何广泛使用的 C++ 单元测试框架支持这个想法?
这是直接来自 NUnit 文档的示例:
namespace NUnit.Tests
{
using System;
using NUnit.Framework;
[TestFixture]
[Category("LongRunning")]
public class LongRunningTests
{
// ...
}
}
这个想法是能够将测试分组到不同的类别中,并在指定的类别中执行测试,或者可能根据它们的类别排除测试。
我尝试过 CppUnit、Boost.Test 和 Google Test,它们都没有直接支持这个想法。
例如,我有单元测试、集成测试、中型测试和大型测试。单元和集成测试运行很快,所以我在自动构建的每个构建配置中运行它们:Release/Debug、x86/x64、linux/windows。中等测试需要时间来运行,所以我只在Release|x64|windows构建中运行它们。大的测试作为开发辅助存在:它们永远不会在自动构建中运行。然后为了增加乐趣,我有只存在于 x86|windows 中的功能(这很复杂)。我用一个复杂的层次结构来完成这一切,CppUnit 很高兴地支持它。但是,使用“发布”、“调试”、“x86”等类别会更好。
在 CppUnit 中,我的测试目前在 Fixture 类中。理想情况下,我希望能够用类别标记这些装置,然后我可以相应地过滤它们。
测试层次结构没有做的一件关键事情,即哪些类别会做,是在一个夹具上拥有多个类别。