【问题标题】:Nunit not hitting breakpoints in test project class library (VS2012)Nunit 没有在测试项目类库中遇到断点(VS2012)
【发布时间】:2023-04-09 01:57:01
【问题描述】:

我有一个控制台应用程序,我在项目中添加了一个类库解决方案来保存我的所有单元测试。

除了在我运行测试时没有命中断点这一事实之外,一切都运行良好。

如果我运行整个应用程序,控制台应用程序上的断点会正常命中。

如果我运行测试,测试类和控制台应用程序中的断点将被完全忽略。

我看到另一个帖子说去调试> 启动新实例,但由于它是一个类库,我不能这样做。我应该在不同的项目类型中有测试类吗?

我正在使用 Nunit、VS2012 和 NUnit 跑步者。

我有几个测试失败了,我不知道为什么,我真的需要能够单步执行代码。

非常感谢任何帮助。

【问题讨论】:

    标签: c# .net unit-testing visual-studio-2012 nunit


    【解决方案1】:

    不要运行您的测试,而是尝试调试您的测试

    【讨论】:

    • 谢谢!你让我的一天轻松多了:)
    • 我:为什么我的断点没有命中!? Visual Studio 是愚蠢的! [将光标向下移动 1/4" 以选择调试测试而不是运行测试]............哦............
    【解决方案2】:

    对于遇到此问题的其他人:检查您是否在发布模式下构建。

    我在使用 NUnit 3.7.0、dotnet core 1.0 和 VS 2017 时遇到了这个问题。原来我是在发布模式下构建的。在调试模式下构建解决了这个问题。

    【讨论】:

    • 我遇到过几次这个问题,每次我都必须查找这个答案。我期待着将来阅读此评论。
    【解决方案3】:

    我的测试代码是在 .Net 4.5 中编译的,并且使用的是 Nunit2.6.1。

    如果我只设置了测试项目的调试选项->启动外部程序->nunit-86x.exe 并将 .dll 名称作为命令行参数,则断点不会被命中。

    这会从 Nunit exe 开始,但没有断点。

    1) 要解决这个问题,请转到

    C:\Program Files (x86)\NUnit 2.6.1\bin
    

    2) 搜索nunit-x86.exe.config,或者如果您打算使用nunit.exe,则打开nunit.exe.config

    3) 在记事本中打开罚款并搜索该行

    <startup useLegacyV2RuntimeActivationPolicy="true">
    <!-- Comment out the next line to force use of .NET 4.0 -->
    <supportedRuntime version="v2.0.50727" />
    <supportedRuntime version="v4.0.30319" />
    </startup>
    

    4) 删除支持的 Runtime version=v2.0.50727 行并保存文件(通过右键单击在管理员中打开记事本并以管理员身份打开,以管理员模式打开)。

    5) 重建项目以运行您的测试代码的调试会话。断点将被命中。

    【讨论】:

      【解决方案4】:

      在我的例子中,一行代码似乎执行了一个永无止境的循环,这使得无法到达断点。

      解决方案:在调试方法的开头放置一个断点,以便检查此错误!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-11
        • 2019-03-24
        • 1970-01-01
        • 1970-01-01
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 2013-10-04
        相关资源
        最近更新 更多