gpt4 book ai didi

c# - 在 nunit 测试中使用连接字符串

转载 作者:行者123 更新时间:2023-11-30 13:52:07 25 4
gpt4 key购买 nike

我们使用 nunit.exe 应用程序来运行我们的(集成)测试

现在我遇到了连接字符串没有从测试代码所在的 dll 的 app.config 中获取的问题。

这听起来合乎逻辑,因为 nunit.exe 是启动应用程序而不是测试 dll(顺便说一下,当我从 visual studio 测试框架启动测试时它曾经工作),但我应该将连接字符串放在 nunit.exe 中吗? exe.config?

我尝试在测试代码中设置它们(适用于应用程序设置:ConfigurationManager.AppSettings.Set("DownloadDirectory", mDir);) 如下所示:ConfigurationManager.ConnectionStrings.Add(conset);(其中 conset 是一个 ConnectionStringSettings 对象),但随后我收到错误消息,指出 connectionstrings 部分是只读。

我应该怎么做才能在我的测试中使用连接字符串?

编辑:我们使用 Entity Framework ,所以我们不能将连接字符串放在应用程序设置中,因为它直接从该部分读取,我找不到解决此问题的方法。

最佳答案

使用反射,您可以(在内存中)更改 Configuration.ConnectionStrings[connectionName] 的值,在您的情况下,您可能会在 SetUp 或 TestFixtureSetUp 中执行此操作。参见 http://david.gardiner.net.au/2008/09/programmatically-setting.html .

// Back up the existing connection string
ConnectionStringSettings connStringSettings = ConfigurationManager.ConnectionStrings[connectionName];
string oldConnectionString = connStringSettings.ConnectionString;

// Override the IsReadOnly method on the ConnectionStringsSection.
// This is something of a hack, but will work as long as Microsoft doesn't change the
// internals of the ConfigurationElement class.
FieldInfo fi = typeof(ConfigurationElement).GetField("_bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
fi.SetValue(connStringSettings, false);

// Set the new connection string value
connStringSettings.ConnectionString = connectionStringNeededForNUnitTest;

关于c# - 在 nunit 测试中使用连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3164251/

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