2009-08-28 3 views
1

Я построил единый тестовый проект для библиотеки в VS 2008 C#. Библиотека будет реагировать на аргументы командной строки. Я установил свойства Unit -> Debug -> Start Options с аргументами по умолчанию, чтобы вызвать определенные реакции в целевой библиотеке. Мои вопросы:Отладка командной строки args в C#

1) Когда код библиотеки выполняет Environment.GetCommandLineArgs(), он не видит ни одного из аргументов по умолчанию, которые я установил. Я даже скопировал аргументы по умолчанию из проекта единичного тестирования в Свойства проекта библиотеки без эффекта. Что я не делаю (правильно)?

2) Есть ли программный способ задания аргументов командной строки? Я хотел бы, чтобы различные тесты могли устанавливать аргументы и наблюдать за поведением библиотеки.

Спасибо, Джим

+0

Чтобы быть уверенным, что вы правильно работаете с отладкой? –

+0

Надеюсь. Я перехожу к модульному тестовому проекту, выбираю метод тестирования, используя значок в желобе, я выбираю Debug. Я ломаюсь в библиотеке и просматриваю вызовы GetCommandLineArgs(). Аргеты, которые я вижу, вытягивают, выглядят как командная строка для тестового проекта, а не те, которые я задал в параметрах запуска Debug. Как-то мне нужно «активировать» аргументы со страницы «Свойства». –

+0

Ах ха. Я вижу из args [0], что ReSharper задействован: "C: \\ ... \\ JetBrains.ReSharper.TaskRunner.exe" Тогда arg [1] - "ipc: //0ff1a572-0...cbc4bdde « и я ожидал« E = DEVLOPMENT »из моих настроек. Является ли ReSharper на моем пути. –

ответ

2

Обнаружена проблема. Надстройка ReSharper запускает свой TaskRunner.exe для выполнения модульных тестов. Командная строка при вызове TaskRunner не учитывает настройки отладки. JetBrains (производитель) теперь знает об этой проблеме.

2

не прямо ответить на ваш вопрос, но я не рекомендовал бы использовать арг командной строки в библиотеке. Исполняемый файл, а затем соответствующие параметры передаются в библиотеку. В случае модульных тестов вы можете просто передать тестовые аргументы. Подумайте об использовании вашей библиотеки в приложении GUI, где пользователь вводит параметры в форме вместо аргументов командной строки или о программе, использующей вашу библиотеку дважды двумя разными способами.

+0

Отличная точка; вы абсолютно правы. Я должен был четко указать, что библиотека _is_ анализатор командной строки для приложений. Это обеспечит общность для интерпретации настроек командной строки и .config. –

Смежные вопросы