【问题标题】:How to get code coverage on test that needs service to be hosted?如何在需要托管服务的测试中获得代码覆盖率?
【发布时间】:2013-08-01 07:24:51
【问题描述】:

我有一个 Visual Studio 2012 解决方案,其中包含一个测试项目,该测试项目调用一个调用 WCF 服务项目的类库项目(这是状态的简化摘要,实际解决方案更复杂)。

如果我在测试资源管理器中单击“调试选定的测试”,则测试会通过,但如果我“运行选定的测试”,则它们会失败,因为没有托管服务。

我想检查我的代码覆盖率,但代码覆盖率“运行”测试,这意味着服务没有被托管,因此测试失败,我的代码覆盖率是 0%。

如何配置测试流程,以便在我“运行”测试以及“调试”测试时托管服务?

附录

经过考虑,我认为模拟服务不会实现目标。各种组件已经使用模拟进行了单独测试,但现在需要进行测试以了解它们如何一起运行。

【问题讨论】:

    标签: vb.net wcf visual-studio unit-testing


    【解决方案1】:

    它们不是单元测试,因为它们具有外部依赖项(另一个示例是数据库调用)——您依赖于 web 服务来让测试通过。这不是保证。

    我想说在这里使用一个模拟框架 - 我使用 Rhino Mocks,但那里有很多。这样你就可以通过 mock 来绕过对 webservice 的依赖。

    此外 - 如果可以的话,我会考虑重构您正在调用的类库,分离出调用等,以便您可以单独测试部分。

    【讨论】:

    • 我已经单独测试了部分,我正在尝试测试组件之间的相互依赖关系。我会考虑嘲笑,尽管我不确定它是否真的能满足我的要求。
    猜你喜欢
    • 2015-03-31
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2015-09-05
    • 2019-12-29
    • 1970-01-01
    • 2020-01-13
    • 2017-02-13
    相关资源
    最近更新 更多