Модульное тестирование Visual Studio 2008 с использованием того же файлового ресурса - PullRequest
1 голос
/ 18 января 2011

Я использую встроенную среду модульного тестирования Visual Studio 2008, чтобы промокнуть ногой от TDD приложения C # WinForms. Приложение работает с проприетарными форматами данных изображений, и я разбил образцы файлов на разделы компонентов (заголовок, метаданные, отдельные кадры, все кадры и т. Д.) Для тестирования. Некоторые из моих методов тестирования используют один и тот же блок данных, и когда я выбираю опцию «Выполнить все тесты в решении», тесты, использующие один и тот же блок данных, завершаются с ошибкой «System.IO.IOException: процесс не может получить доступ к файлу» datachunk.dat потому что он используется другим процессом ". Эти тесты проходят, когда они запускаются индивидуально. Есть ли способ, которым я могу сказать Visual Studio, чтобы он не пытался запускать эти тесты одновременно, или я поступаю неправильно?

Ответы [ 3 ]

1 голос
/ 18 января 2011

Используйте метод intialize, чтобы загрузить «чанк» до того, как тесты понадобятся.Затем вы можете многократно использовать один и тот же «чанк» в разных тестах.

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

Мир и Благодать, Григорий А. Бимер

0 голосов
/ 18 января 2011

Я могу предложить несколько вещей:

  1. Проверьте, можете ли вы изменять флаги при открытии файла. По сути, вы должны открыть его как разделенный для чтения.
  2. Считайте полное содержимое файла в байтовый массив и используйте его в качестве источника в своих тестах. Это не сильно изменится.
  3. Использовать общий ресурс и TestInitialize.
0 голосов
/ 18 января 2011

Прочитайте его один раз в функции TestInitialize, считав в поле, чтобы он был доступен для всех тестов в классе.

...