Я хочу понять, правильный способ обработки сценария нижеNUnit Test EXE и «ConfigurationManager.AppSettings» EXE не работает
У меня есть C# решение, которое имеет два проекта Один проект HelloWorld и другой проект является TestHelloWorld
HelloWorld проект читать конфигурации с помощью ConfigurationManager.AppSettings [ "Message"]. ToString()
И проект TestHelloWorld является проект NUnit для тестирования проекта HelloWorld.
Когда работа, выполняемая из NUnit, код чтения конфигурации не работает. Потому что он попытался прочитать config из TestHelloWorld.config вместо HelloWorld.exe.config.
Может кто-то, пожалуйста, предоставьте хорошую практику обращения с этим.
Я приложил графику своего исходного кода, а также разместил код ниже, ценю людей, если вы можете скачать код и попробовать.
Program.cs код, как показано ниже
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
WordToSay wts = new WordToSay();
Console.WriteLine(wts.WordText());
Console.ReadLine();
}
}
public class WordToSay
{
public string WordText()
{
return ConfigurationManager.AppSettings["Message"].ToString();
}
}
}
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings >
<add key ="Message" value ="Hello"/>
</appSettings>
</configuration>
Class1.cs код, как показано ниже
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using HelloWorld ;
namespace TestHelloWorld
{
[TestFixture]
public class Class1
{
[Test]
public void TestHello()
{
WordToSay wts = new WordToSay();
StringAssert.AreEqualIgnoringCase("Hello", wts.WordText());
}
}
}
Как и в сторону, это не очень хороший тест устройство, так как вы не испытывая никакой логики, но, по существу, пытается проверить функциональность «ConfigurationManager», который вы можете предположить, Microsoft уже делает. – Steve