2009-12-14 4 views
1

Я хочу провести некоторое тестирование взаимодействия в своем тестовом проекте и хочу протестировать некоторые компоненты, основанные на конфигурации xml ... Как найти базовый каталог тестового проекта в коде, чтобы я может создавать пути относительно него? Я хочу иметь подпапку, содержащую тестовые XML-файлы.База данных проекта Visual Studio Test

Благодаря

EDIT:

Iv используется Assembly.GetExecutingAssembly() Местонахождение - который дает из положить папку времени я побежал тесты .. Мне нужно настроить XML-файлы, чтобы пойти с. сборки в этот каталог .. как я могу это сделать?

ответ

2
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 

Вы получите путь к файлу приложений, который вы можете использовать для загрузки файлов XML в его каталог.

Если вы говорите строго о папке проекта, полагая, что это в bin \ debug, просто добавьте «.... \» до конца.

+0

Iv используется Assembly.GetExecutingAssembly() Местонахождение - который дает выход поместить папку времени я побежал тесты .. Мне нужно установить файлы XML идти. с сборками в этот каталог .. как я могу это сделать? – theringostarrs

+0

Это будет работать только для собранных сборок. Ассембли, передаваемые из удаленных мест, возвращают URI, а не путь к файлу. Просто FYI. – GrayWizardx

1

Я предполагаю, что Application.StartupPath тоже не сработает для вас?

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

2

Вы должны использовать подходящие пути к корню проекта; например: doc.Load(@"somedir\my.xml");. Вопрос в том, какую тестовую структуру вы используете? С помощью NUnit большинство тестировщиков (в среде IDE, например TestDriven.NET, R # и т. Д.) Просто используют свойства проекта. Поэтому убедитесь, что «Copy to Output Directory» - «Copy Always» или «Copy if Newer».

Для встроенного MSTest бегуна, который поставляется с некоторыми VS-SKU, все по-другому; вы можете использовать либо testrunconfig, либо атрибуты на вашем тестовом адаптере, чтобы сообщить, что нужно развернуть. Что глупо, ИМО. Для testrunconfig дважды щелкните файл testrunconfig и выберите «Развертывание», затем «Добавить файл ...»; атрибутов, вы хотите [DeploymentItem] - как в:

[TestClass, DeploymentItem(@"foo\bar.xml")] 
public class SomeTestClass { 
    ... 
} 
Смежные вопросы