You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Error CS0104:Assert在NUnit与VS测试框架间存在歧义的解决咨询

解决Assert模糊引用的CS0104错误

出现这个错误是因为你的项目同时引入了NUnit.Framework和Microsoft.VisualStudio.TestTools.UnitTesting两个测试框架,两者都包含Assert类,编译器无法判断你要使用哪一个。以下是几种可行的解决方法:

方法1:移除多余的测试框架引用

检查你的项目依赖,如果你用的是NUnit,就删除对Microsoft.VisualStudio.TestTools.UnitTesting(即MSTest)的引用:

  • 在NuGet包管理器中卸载MSTest.TestFramework和MSTest.TestAdapter
  • 移除代码中所有using Microsoft.VisualStudio.TestTools.UnitTesting;语句

方法2:使用完全限定名调用Assert

在代码中直接指定要使用的Assert类的完整命名空间,避免模糊:

// Assert
NUnit.Framework.Assert.AreEqual(expectedTotalCalories, actualTotalCalories);

方法3:给NUnit命名空间添加别名

在文件顶部的using语句中给NUnit.Framework设置别名,后续通过别名调用Assert:

using NUnit = NUnit.Framework;
using RecipeApplication;

namespace RecipeApp_UnitTest
{
    [TestFixture]
    public class RecipeTests
    {
        // ... 其他代码 ...
        
        // Assert
        NUnit.Assert.AreEqual(expectedTotalCalories, actualTotalCalories);
    }
}

额外提示

你的测试代码中recipe.EnterRecipeDetails();如果是依赖控制台输入的交互式方法,会导致单元测试无法自动执行(需要手动输入)。建议重构Recipe类,添加一个可直接添加食材的方法(比如AddIngredient(Ingredient ingredient)),这样测试时可以手动构造测试数据,让测试更可控。

内容的提问来源于stack exchange,提问作者TevinChins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:55:03