【问题标题】:How do I mark a unit test as skipped in Netbeans test results window? (C++)如何在 Netbeans 测试结果窗口中将单元测试标记为已跳过? (C++)
【发布时间】:2014-01-28 11:49:51
【问题描述】:

tl;dr:我正在使用 netbeans 编写一个 C++ 项目,并且正在寻找一种将单元测试标记为已跳过的方法。

详情:

我正在使用 Netbeans IDE 进行 C++ 开发。添加单元测试时(步骤here),IDE 会生成 C++ 代码,其输出如下所示:

%SUITE_STARTING%
%SUITE_STARTED%
%TEST_STARTED% time=0 testname (suitename)
%TEST_FAILED%
%TEST_FINISHED%
%SUITE_FINISHED%

这是一种 Netbeans 可以很好地解析并显示在测试结果窗口中的输出格式。

我已经使用单元测试类和动态生成此输出的测试套件类更新了我的测试代码,并且它可以工作。

我的问题是我想将单元测试标记为“已跳过”(例如,未成功,未失败,根本未执行)。造成这种情况的原因有很多(在实施测试之前指定测试、因为已知缺陷阻止测试而跳过测试等)。

问题:IDE 是否支持此功能(测试结果窗口有一个“显示跳过的测试”按钮,但据我所知没有任何效果),以​​及代码应该生成什么样的输出令牌要“跳过”的测试? (我试过%TEST_SKIPPED%%TEST_SKIPPED% testname 但测试结果窗口只是忽略了这条线。

【问题讨论】:

    标签: c++ unit-testing netbeans ide


    【解决方案1】:

    tl;dr IDE 不支持开箱即用,为了使其正常工作,您至少需要修补 IDE。

    详情:

    根据here,Netbeans 确实支持跳过的测试。

    但是,根据here 解析测试运行器的输出来更新 UI 的逻辑不支持跳过的测试,无论是使用内置的 Simple Test 还是 CUnit Test。

    为了使跳过的测试支持正常工作,您需要生成相关的 SkippedTestHandler 作为CndUnitHandlerFactory.java 的一部分,以及作为Simple Unit Test 内置或任何单元测试的一部分对 CodeGeneration 进行的任何其他修改您可以通过创建自定义模块来添加支持以遵循说明here

    此外,如果您想使用 CUnit,您还可以通过类似于 here 的补丁支持跳过的测试

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 2018-10-13
      相关资源
      最近更新 更多