it-swarm.com.ru

Как запустить программу с аргументами при отладке?

Я хочу отладить программу в Visual Studio 2008. Проблема в том, что она завершается, если не получает аргументов. Это из основного метода:

if (args == null || args.Length != 2 || args[0].ToUpper().Trim() != "RM") 
{
    Console.WriteLine("RM must be executed by the RSM.");
    Console.WriteLine("Press any key to exit program...");
    Console.Read();
    Environment.Exit(-1);
}

Я не хочу это комментировать, а потом возвращаться при компиляции. Как запустить программу с аргументами при отладке? Это установлено как Проект запуска.

81
Kasper Hansen

Перейти к Project-><Projectname> Properties. Затем нажмите на вкладку Debug и введите свои аргументы в текстовое поле с именем Command line arguments.

145
Øyvind Bråthen

Я бы предложил использовать директивы вроде следующего:

        static void Main(string[] args)
        {
#if DEBUG
            args = new[] { "A" };
#endif

            Console.WriteLine(args[0]);
        }

Удачи!

48
Homam

Мое предложение будет использовать юнит-тесты.

В вашем приложении выполните следующие действия в 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);
        }
    }
}

Таким образом, вы можете в автоматическом режиме протестировать несколько входов аргументов без необходимости редактировать код или изменять настройки меню каждый раз, когда вы хотите проверить что-то другое.

4
dav_i

Для Код Visual Studio :

  • Открыть файл launch.json
  • Добавьте аргументы в вашу конфигурацию:

"args": ["некоторый аргумент", "другой аргумент"],

0
Alamakanambra