Sql server Visual Studio中的SQL Server单元测试:由于“对象引用未设置为对象的实例”,无法设置测试条件属性。错误
我一直在VisualStudio中为SQLServer数据工具SSDT项目进行单元测试试验。我在单元测试设计器中发现了一个我不知道如何调试或解决的问题 背景: 在VisualStudio2019中,我创建了一个SSDT项目,并通过导入数据库来填充它。我发现创建能够运行SQL Server测试的独立单元测试项目的最简单方法是右键单击SSDT项目中的存储过程,然后选择create unit tests…,然后选择将单元测试添加到新项目的选项 要将新的单元测试添加到测试项目,我右键单击该项目,选择add>new Item…>SQL Server>SQL Server单元测试 问题是: 我试图将标量值测试条件添加到我的第一个SQL Server单元测试中。当我试图在属性窗口中设置期望值时,出现了一个错误对话框,指出属性值无效。详细消息是对象引用未设置为对象的实例 我发现试图在“属性”窗口中设置任何属性都会导致相同的错误。但是,没有任何迹象表明该对象是空的 通过在底层C类中设置属性值,而不是使用属性窗口,我已经能够解决这个问题。如果我这样做,测试将成功运行。因此,问题似乎仅限于测试设计者 问题不仅仅局限于标量值测试条件。我在行计数条件方面也遇到了同样的问题-我无法在“属性”窗口中设置任何属性,因为无论何时,错误对话框都阻止我更改值Sql server Visual Studio中的SQL Server单元测试:由于“对象引用未设置为对象的实例”,无法设置测试条件属性。错误,sql-server,visual-studio,unit-testing,sql-server-data-tools,Sql Server,Visual Studio,Unit Testing,Sql Server Data Tools,我一直在VisualStudio中为SQLServer数据工具SSDT项目进行单元测试试验。我在单元测试设计器中发现了一个我不知道如何调试或解决的问题 背景: 在VisualStudio2019中,我创建了一个SSDT项目,并通过导入数据库来填充它。我发现创建能够运行SQL Server测试的独立单元测试项目的最简单方法是右键单击SSDT项目中的存储过程,然后选择create unit tests…,然后选择将单元测试添加到新项目的选项 要将新的单元测试添加到测试项目,我右键单击该项目,选择ad
是否有人遇到过类似的问题并找到了解决方案?结果表明,该问题是由两个项目文件中的ToolsVersion属性不匹配引起的:SSDT项目和单元测试项目 我从这个MSDN线程中得到了ToolsVersion可能很重要的提示: 我卸载了,然后在VisualStudio中编辑了每个项目。我可以看到SSDT项目的ToolsVersion是4.0,尽管它是在VisualStudio2019中从头创建的,而从SSDT项目创建的单元测试项目的ToolsVersion是15.0 我将SSDT项目的ToolsVersion设置为15.0,以匹配单元测试项目 一旦我重新加载了每个项目,我就能够使用测试设计器设置测试条件属性而不会出错 为了弄清楚我在说什么,这里有一个SSDT项目文件的简化版本。您可以在项目标记顶部附近看到ToolsVersion属性:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<Name>SQlServerUnitTestingDemo</Name>
...
</PropertyGroup>
...
</Project>