gpt4 book ai didi

visual-studio - 使用 coderush 或 testdriven.net 在 Visual Studio 中运行的 NUnit "no tests found"

转载 作者:行者123 更新时间:2023-12-03 01:30:06 26 4
gpt4 key购买 nike

我的公司一直在使用MSTest和NUnit。我现在将我们切换为仅使用 NUnit。该代码充满了架构问题,因此我们可以忽略这些问题并致力于如何使其实际工作。我猜想,主要问题是数据库连接的设置是直接从 ConfigurationManager.AppSettings[] 中提取的。在本例中,它是“SettingsFile”路径。它是我们的主配置文件的路径。

我提出这个问题的原因是,当“SettingsFile”存在时,NUnit 会出错,如果我将其命名为 SettingsFile2,它就不会出错。我还在代码中重命名了对它的引用,因此它仍然有效,只是不再出错。

当 NUnit 抛出错误时,它返回未找到的测试。

我认为“SettingsFile”可能是 NUnit 的一些保留的 appSetting,尽管听起来很荒谬,但我没有发现任何涉及此类的内容。

我还创建了一个完全空白的项目。添加了一个测试 C# 测试模板项目,添加了一个 nunit 测试,添加了一个 app.config,对其进行了测试并且它有效。我什至有相同的 app.config 设置。

重申一下:如果我进入测试项目的 app.config,并将 key="SettingsFile"更改为 key="SettingsFile2",然后将我的配置类更改为 ConfigurationManager.AppSettings["SettingsFile2"] 且不更改任何其他内容,现在它将正确构建。为什么会发生这种情况?

我知道解决方案是不在 appSettings 中使用“SettingsFile”一词...但它已经在我们所有的生产服务器、测试服务器、登台服务器、开发服务器等中使用。我们没有更新所有内容的简单方法,但如果我们也有,我只需向经理争论我的观点。

DXCore 测试的输出:

Testing started:

Exception:
Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
StackTrace:
at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at CR_ExtUnitTestRunner.Invoker.InvokeInThread()
InnerException:
Exception:
Message: Error loading settings file
Source: nunit.util
StackTrace:
at NUnit.Util.XmlSettingsStorage.LoadSettings()
at NUnit.Util.SettingsService..ctor(Boolean writeable)
at NUnit.Util.SettingsService..ctor()
at CR_NUnitTesting.Executor.Initialize()
at CR_NUnitTesting.Executor.Execute(ExecuteTestData data)
at CR_NUnitTesting.NUnitExtension.Execute(Int32 major, Int32 minor, ExecuteTestData data)
at CR_NUnitTesting.NUnitExtension.<InitializePlugIn>b__2(ExecuteTestData data)
InnerException:
Exception:
Message: Object reference not set to an instance of an object.
Source: nunit.util
StackTrace:
at NUnit.Util.XmlSettingsStorage.LoadSettings()
No tests found.
Duration : 5.25776431101399

更新:

添加对我们的 CORE 项目的引用会导致该问题。核心项目是读取SettingsFile属性的项目。请注意,我在任何访问 SettingsFile 之前将 IO 文件写入,并且没有记录任何内容。我在 CORE 项目中搜索了静态类构造函数。没有了。我不知道为什么添加引用会破坏这个。

更新:

coderush 中的单元测试运行器不会更新以显示正确的测试。我将配置设置更改为“SettingsFile2”,以便测试运行良好,然后单元测试运行程序正确更新。但是,当我右键单击某个测试并说“转到测试”时,它现在会显示所有曾经存在过的测试,但这些测试现在都已删除。

另一件事很奇怪:Coderush 打印两次结果,但只运行一次测试。

正在搜索测试...总测试:2,过滤:1

CanConfirmDatabaseMatchesMappings 失败: ...CanConfirmDatabaseMatchesMappings 失败: ...

最佳答案

我们(DevExpress)已重现该问题并将其注册在我们的 database 中。 CodeRush 单元测试运行器的修复已基本准备就绪。一旦错误的状态发生更改,欢迎您从问题页面请求包含修复程序的每日构建。

关于visual-studio - 使用 coderush 或 testdriven.net 在 Visual Studio 中运行的 NUnit "no tests found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6741319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com