Mik*_*ike 33 nunit configurationmanager app-config visual-studio
当我对连接到DB检查运行简单测试时,我在NUnit中收到错误:
[Test]
public void TestConn()
{
string connectionString = ConfigurationManager.ConnectionStrings["FertigungRead"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
Assert.AreEqual(ConnectionState.Open, connection.State);
connection.Close();
}
Run Code Online (Sandbox Code Playgroud)
System.NullReferenceException:未将对象引用设置为对象的实例.
在线:
connectionString = ConfigurationManager.ConnectionStrings["FertigungRead"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
我可以在测试中使用ConfigurationManager吗?
我想补充一点。nunit 的文档中有一个注释,应该根据使用场景配置文件命名和放置。我被这个问题困住了一段时间。
文档说:
如果正在加载单个程序集,则配置文件被赋予具有配置扩展名的程序集文件的名称。例如,用于运行 nunit.tests.dll 的配置文件必须命名为 nunit.tests.dll.config 并与 dll 位于同一目录中。
如果正在加载 NUnit 项目,则配置文件使用项目文件的名称并将扩展名更改为 config。例如,项目 AllTests.nunit 需要一个名为 AllTests.config 的配置文件,该文件与 AllTests.nunit 位于同一目录中。加载 Visual Studio 项目或解决方案时遵循相同的规则。
http://www.nunit.org/index.php?p=configFiles&r=2.2.10
注意:如果不起作用,请尝试添加路径,例如bin\Debug\yourAssemblyName .dll.config
您的测试项目文件yourAssemblyName .nunit将更新.
是的,请确保您的测试项目中的App.config与您在测试中访问的内容相匹配,即
[Test]
public void TestConn()
{
var sss = ConfigurationManager.AppSettings["TestKey"];
}
Run Code Online (Sandbox Code Playgroud)
App.config中
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="TestKey" value="testKeyValue"/>
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22056 次 |
| 最近记录: |