Я бы предложил использовать юнит-тесты.
В вашем приложении выполните следующие переключатели в Program.cs
:
#if DEBUG
public class Program
#else
class Program
#endif
и то же самое для static Main(string[] args)
.
Или альтернативно используйте Friend Assemblies , добавив
[assembly: InternalsVisibleTo("TestAssembly")]
к вашему AssemblyInfo.cs
.
Затем создайте проект модульного теста и тест, который выглядит немногонапример, так:
[TestClass]
public class TestApplication
{
[TestMethod]
public void TestMyArgument()
{
using (var sw = new StringWriter())
{
Console.SetOut(sw); // this makes any Console.Writes etc go to sw
Program.Main(new[] { "argument" });
var result = sw.ToString();
Assert.AreEqual("expected", result);
}
}
}
Таким образом, вы можете автоматически тестировать несколько входов аргументов без необходимости редактировать код или изменять настройку меню каждый раз, когда вы хотите проверить что-то другое.