Всем доброго времени суток.
Visual Studio 2010. Язык — C#.
При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)
Здравствуйте, bananan85, Вы писали:
B>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)
Вы тестируете сам парсинг или насколько хорошо .net умеет читать файлы?
СУВ, Aikin
P.S. Ответ на вопрос.
Попробуйте путь вида @"..\..\..\ProjectName\bin\Debug\". первые две точки поднимаются в папку bin, вторые в папку ProjectName.Tests, третьи в папку со всеми проектами
Здравствуйте, bananan85, Вы писали:
B>Всем доброго времени суток. B>Visual Studio 2010. Язык — C#. B>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)
Можно определить абсолютный путь к тестируемой сборке..от него построить относительный до файлов с тестовыми данными
Я пользуюсь таким свойством:
static string AssemblyDirectory
{
get
{
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);
}
}
Re[2]: Тестирование с использованием тестовых файлов
+1. Надо выделить отдельный метод, который будет принимать на входе содержимое файла, и уж его тестировать.
Здравствуйте, Aikin, Вы писали:
A>Здравствуйте, bananan85, Вы писали:
B>>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....) A>Вы тестируете сам парсинг или насколько хорошо .net умеет читать файлы?
A>СУВ, Aikin
A>P.S. Ответ на вопрос. A>Попробуйте путь вида @"..\..\..\ProjectName\bin\Debug\". первые две точки поднимаются в папку bin, вторые в папку ProjectName.Tests, третьи в папку со всеми проектами
Здравствуйте, bananan85, Вы писали:
B>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)
Храни их в ресурсах. В тесте — вытаскивай из ресурсов и подклвдывай куда надо.
Re[2]: Тестирование с использованием тестовых файлов
Здравствуйте, Lloyd, Вы писали:
L>Храни их в ресурсах. В тесте — вытаскивай из ресурсов и подклвдывай куда надо.
Я поступаю проще. Храню такие тексты в локальных переменных или константах внутри тестового класса. Все зависит от того насколко велик тестовый файл.
Идеальный тест должен умещаться в один экран ("один взгляд").
Хотя и случай с ресурсам бывает оправдан. Для больших входных данных (хоть я и не использовал его ни разу, юзаю константы на килобайты в конце класса).
С др. стороны, если входные данные большие, то разобраться почему тест упал будет ну ооочень сложно.
Так что этот подход больше подходит для регрессионных тестов -- взяли весь/кусок реального файла. Прогнали на нем тест. Чисто на случай, что десяток маленьких тестов не покроют какой-нибудь вариант.
СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[3]: Тестирование с использованием тестовых файлов
Здравствуйте, Aikin, Вы писали:
L>>Храни их в ресурсах. В тесте — вытаскивай из ресурсов и подклвдывай куда надо. A>Я поступаю проще. Храню такие тексты в локальных переменных или константах внутри тестового класса. Все зависит от того насколко велик тестовый файл. A>Идеальный тест должен умещаться в один экран ("один взгляд").
В моем случае это не подходит, т.к. тестируются production-"конфигурации".
A>Хотя и случай с ресурсам бывает оправдан. Для больших входных данных (хоть я и не использовал его ни разу, юзаю константы на килобайты в конце класса). A>С др. стороны, если входные данные большие, то разобраться почему тест упал будет ну ооочень сложно. A>Так что этот подход больше подходит для регрессионных тестов -- взяли весь/кусок реального файла. Прогнали на нем тест. Чисто на случай, что десяток маленьких тестов не покроют какой-нибудь вариант.
Интерграционные и есть.
Re[2]: Тестирование с использованием тестовых файлов
Здравствуйте, andrey82, Вы писали:
A>Можно определить абсолютный путь к тестируемой сборке..от него построить относительный до файлов с тестовыми данными
Только чекрыжек ShadowCopy в решарпере или другом тест-раннере надо отключать.
Здравствуйте, XopoSHiy, Вы писали:
XSH>Здравствуйте, andrey82, Вы писали:
A>>Можно определить абсолютный путь к тестируемой сборке..от него построить относительный до файлов с тестовыми данными
XSH>Только чекрыжек ShadowCopy в решарпере или другом тест-раннере надо отключать.
У меня в NUnit 2.5.7 этот метод работает со включенным Enable Shadow Copy
Сейчас еще раз проверил, получается что
Здравствуйте, bananan85, Вы писали:
B>Всем доброго времени суток. B>Visual Studio 2010. Язык — C#. B>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)
Можно поставить тестлоадагент и там будет указываться, что куда деплоится.
Материал из Википедии — свободной энциклопедии, -_*