我在一个单独的项目中创建了一个单元测试。我正在尝试更改我在主项目中设置的文件路径。我以My.Settings.FooBarPath
的身份访问路径。我无法弄清楚如何在单元测试中更改它。如何从单元测试项目访问主项目中的设置以及如何更改值?
我已阅读此帖:Modifying application settings in unit tests
第二个答案似乎是最有用的,但我似乎无法让它适用于我的单元测试。
答案 0 :(得分:0)
一种方法是手动修改settings.xml文件。这有点令人费解,但本教程可能有助于将文本文件保存并加载到您的应用程序中(当然,您可以在没有用户界面的情况下执行此操作) - https://www.youtube.com/watch?v=O3nSXaD2J9Q
另一种选择是用Shell()
启动你的其他程序,并有一个命令行参数,用于更改设置以及将其更改为的内容。
答案 1 :(得分:0)
问题是针对VB.Net,而Modifying application settings in unit tests中给出的答案是针对C#。因为我对VB.Net有同样的问题,我想我会在这里给出一个VB.Net版本的答案。基于C#答案,我在我的项目中使用以下内容(使用Visual Studio 2013):
测试项目应正确设置为被测应用程序的单元测试(“Create and run unit tests”应有助于正确设置)
使用测试中的应用程序的完全限定名称空间myprojects_namespace.My.settings
将为您提供对受测试应用程序的用户设置的完全(智能感知)访问。
之后,您可以像平常一样读/写用户设置。 e.g。
myprojects_namespace.My.settings.someProperty = "somevalue"
Assert.AreEqual("somevalue", myprojects_namespace.My.settings.someProperty)
P.S。:我不需要在AssemblyInfo.vb
文件中添加任何内容。没有引用System.Runtime.CompilerServices.InternalsVisibleTo
,因为这似乎已经通过正确地为被测应用程序设置单元测试项目来处理。