我目前正在使用CppUnit进行测试,但由于缺乏对类别概念的支持而感到沮丧.有没有广泛使用的C++单元测试框架支持这个想法?
以下是直接来自NUnit文档的示例:
namespace NUnit.Tests
{
using System;
using NUnit.Framework;
[TestFixture]
[Category("LongRunning")]
public class LongRunningTests
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我们的想法是能够将测试分组到不同的类别中,并在指定的类别中执行测试,或者根据类别排除测试.
我尝试过CppUnit,Boost.Test和Google Test,但没有一个直接支持这个想法.
例如,我有单元测试,集成测试,中等测试和大型测试.单元和集成测试运行得很快,所以我在自动构建中的每个构建配置中运行它们:Release/Debug,x86/x64,linux/windows.中等测试需要时间来运行,所以我只在Release | x64 | windows build中运行它们.大型测试作为开发辅助工具存在:它们永远不会在自动构建中运行.然后为了增加乐趣,我的功能只存在于x86 | windows中(它很复杂).我用复杂的层次结构完成所有这些,CppUnit很乐意支持.但是,使用"release","debug","x86"等类别进行此操作会更好.
在CppUnit中,我的测试目前在Fixture类中.理想情况下,我希望能够使用类别标记这些灯具,然后我可以相应地进行过滤.
测试层次结构不做的一个关键事情是,哪个类别可以做,就是在一个夹具上有多个类别.
Boost.Test中的 --run_test 选项支持测试和/或套件名称的通配符匹配。我不完全确定匹配有多灵活,但是如果您要将类似标签的命名部分放入您的测试(-suite)名称中,您也许可以运行--run_test=suite_LongRunning*/*
类似的东西。
我还偶然发现了xUnit++,它具有可用于运行不同类别的属性。(因为它是根据 NUnit 建模的,所以这应该不足为奇。)
归档时间: |
|
查看次数: |
718 次 |
最近记录: |