如何为所有.net测试项目实现单个连接字符串

如何为所有.net测试项目实现单个连接字符串,.net,testng,connection-string,.net,Testng,Connection String,因此,我想知道是否有比我目前实施的更好的解决方案 问题是: 我有一个包含多个测试项目的解决方案。 每个测试项目都引用一个.Common库来管理测试数据。 有时需要使用数据库来创建和/或获取测试数据。 我希望我的所有测试项目在运行时使用相同的服务器/数据库 处理测试数据。 如果我想更改此服务/数据库,我不想转到每个项目来更改app.config中的连接字符串,因此我希望所有测试项目都使用一个单一的、集中的连接字符串集合 当前解决方案: 在我的.Common项目中,我实现了以下内容

因此,我想知道是否有比我目前实施的更好的解决方案

问题是:

我有一个包含多个测试项目的解决方案。 每个测试项目都引用一个.Common库来管理测试数据。 有时需要使用数据库来创建和/或获取测试数据。 我希望我的所有测试项目在运行时使用相同的服务器/数据库 处理测试数据。 如果我想更改此服务/数据库,我不想转到每个项目来更改app.config中的连接字符串,因此我希望所有测试项目都使用一个单一的、集中的连接字符串集合 当前解决方案:

在我的.Common项目中,我实现了以下内容

        return "Data Source='.'; Initial Catalog='MyData'; Integrated Security='true'";
现在我讨厌硬编码字符串,我很沮丧,因为我无法将字符串放入.Common项目的app.config中,并使用以下方法直接从.Common库引用它:

ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
在运行时,始终引用当前运行的测试的app.config,而不是.copmon库的app.config,即使在.Common项目中也是如此

也许我是从一个完全错误的角度来看待它的?也许出于某种原因,最好在每个测试项目中都使用这个字符串?虽然我个人不明白为什么

我不想共享.Common项目中的app.config,因为每个项目可能都有只与该项目相关的设置,我不想将所有这些设置都放在一个配置中

如果有人能为我的问题提出更好的解决方案,我将不胜感激

==========编辑: 我希望找到一个已经发明的轮子


我知道我可能会按照评论中的建议编写一个解决方案,可能是在我写这篇文章的同时,但我需要测试它,并向上面的人证明它的合理性。此外,我甚至不确定我尝试这样做的方式是否正确。

我建议您将连接字符串存储在xml文件中,并在运行时将该文件反序列化为映射类实例,并在所有项目中使用类似的连接字符串。是的,我想这是最明显的,我曾考虑将app.config作为一种资源,并完全做到这一点,但我希望轮子已经发明出来了。要真正实现一些需要测试的东西,很难向我的老板证明这一点。如果我再次遇到这个问题,也许我可以为这个问题辩护。