Тестирование с использованием тестовых файлов
От: bananan85  
Дата: 11.10.10 07:25
Оценка:
Всем доброго времени суток.
Visual Studio 2010. Язык — C#.
При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)
Re: Тестирование с использованием тестовых файлов
От: Aikin Беларусь kavaleu.ru
Дата: 11.10.10 09:55
Оценка:
Здравствуйте, bananan85, Вы писали:

B>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)

Вы тестируете сам парсинг или насколько хорошо .net умеет читать файлы?


СУВ, Aikin

P.S. Ответ на вопрос.
Попробуйте путь вида @"..\..\..\ProjectName\bin\Debug\". первые две точки поднимаются в папку bin, вторые в папку ProjectName.Tests, третьи в папку со всеми проектами
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re: Тестирование с использованием тестовых файлов
От: andrey82  
Дата: 11.10.10 14:01
Оценка:
Здравствуйте, 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]: Тестирование с использованием тестовых файлов
От: ulu http://sm-art.biz
Дата: 11.10.10 20:05
Оценка:
+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, третьи в папку со всеми проектами
Re: Тестирование с использованием тестовых файлов
От: Lloyd Россия  
Дата: 11.10.10 20:07
Оценка: 4 (1)
Здравствуйте, bananan85, Вы писали:

B>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)


Храни их в ресурсах. В тесте — вытаскивай из ресурсов и подклвдывай куда надо.
Re[2]: Тестирование с использованием тестовых файлов
От: Aikin Беларусь kavaleu.ru
Дата: 12.10.10 07:00
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Храни их в ресурсах. В тесте — вытаскивай из ресурсов и подклвдывай куда надо.

Я поступаю проще. Храню такие тексты в локальных переменных или константах внутри тестового класса. Все зависит от того насколко велик тестовый файл.
Идеальный тест должен умещаться в один экран ("один взгляд").

Хотя и случай с ресурсам бывает оправдан. Для больших входных данных (хоть я и не использовал его ни разу, юзаю константы на килобайты в конце класса).
С др. стороны, если входные данные большие, то разобраться почему тест упал будет ну ооочень сложно.
Так что этот подход больше подходит для регрессионных тестов -- взяли весь/кусок реального файла. Прогнали на нем тест. Чисто на случай, что десяток маленьких тестов не покроют какой-нибудь вариант.

СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[3]: Тестирование с использованием тестовых файлов
От: Lloyd Россия  
Дата: 12.10.10 07:09
Оценка: +1
Здравствуйте, Aikin, Вы писали:

L>>Храни их в ресурсах. В тесте — вытаскивай из ресурсов и подклвдывай куда надо.

A>Я поступаю проще. Храню такие тексты в локальных переменных или константах внутри тестового класса. Все зависит от того насколко велик тестовый файл.
A>Идеальный тест должен умещаться в один экран ("один взгляд").

В моем случае это не подходит, т.к. тестируются production-"конфигурации".

A>Хотя и случай с ресурсам бывает оправдан. Для больших входных данных (хоть я и не использовал его ни разу, юзаю константы на килобайты в конце класса).

A>С др. стороны, если входные данные большие, то разобраться почему тест упал будет ну ооочень сложно.
A>Так что этот подход больше подходит для регрессионных тестов -- взяли весь/кусок реального файла. Прогнали на нем тест. Чисто на случай, что десяток маленьких тестов не покроют какой-нибудь вариант.

Интерграционные и есть.
Re[2]: Тестирование с использованием тестовых файлов
От: XopoSHiy Россия http://cleancodegame.github.io/
Дата: 12.10.10 07:31
Оценка:
Здравствуйте, andrey82, Вы писали:

A>Можно определить абсолютный путь к тестируемой сборке..от него построить относительный до файлов с тестовыми данными


Только чекрыжек ShadowCopy в решарпере или другом тест-раннере надо отключать.
---
http://twitter.com/xoposhiy
http://xoposhiy.moikrug.ru
Re[3]: Тестирование с использованием тестовых файлов
От: andrey82  
Дата: 12.10.10 07:43
Оценка:
Здравствуйте, XopoSHiy, Вы писали:

XSH>Здравствуйте, andrey82, Вы писали:


A>>Можно определить абсолютный путь к тестируемой сборке..от него построить относительный до файлов с тестовыми данными


XSH>Только чекрыжек ShadowCopy в решарпере или другом тест-раннере надо отключать.


У меня в NUnit 2.5.7 этот метод работает со включенным Enable Shadow Copy
Сейчас еще раз проверил, получается что
Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName)

действительно дает путь к "c:\temp\nunit20\ShadowCopyCache\..."

А вышеприведенный код дает именно output path для сборки.
Re: Тестирование с использованием тестовых файлов
От: -_*  
Дата: 14.10.10 22:17
Оценка:
Здравствуйте, bananan85, Вы писали:

B>Всем доброго времени суток.

B>Visual Studio 2010. Язык — C#.
B>При тестировании метода, который осуществляет парсинг файла появляется проблемка. Входной параметр метода — путь к файлу. Как указать путь файла относительно корня дерева проекта. Application.StartupPath — возвращает путь Resharper`а. (C:\Program Files\JetBrains ....)

Можно поставить тестлоадагент и там будет указываться, что куда деплоится.
Материал из Википедии — свободной энциклопедии, -_*
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.