Имитация диска вне места исключения - PullRequest
2 голосов
/ 20 марта 2012

В нашем приложении мы хотим проверить исключение места на диске.Каков наилучший способ смоделировать эту ситуацию без использования большого количества файлов чанка.

Ответы [ 3 ]

7 голосов
/ 20 марта 2012

Существует много методов (виртуальные диски, небольшие разделы, даже огромный файл для заполнения вашего тестового раздела).

Обычно я предпочитаю использовать дисковую квоту , потому что она быстро меняется(поэтому я тестирую вручную за несколько секунд, но я также могу интегрировать его в свои автоматические тесты), и я могу свободно пробовать разные условия (мало места на диске, очень мало места на диске, диск заполнен).Более того, вы также можете по-разному обрабатывать «вне дисковой квоты» и «дискового пространства» (при необходимости).

Назначить дисковую квоту для конкретного пользователя и запустить приложение с этими учетными данными.Если квота достаточно мала, вы можете смоделировать диск вне пространства (и вы можете проверить с различными значениями, не создавая тонны файлов).

Это можно сделать через пользовательский интерфейс или просто через командная строка с fsutil:

fsutil quota modify k: 1000000
3 голосов
/ 20 марта 2012

Если вы используете Windows 7 или Windows 2008 R2, вы можете создать маленький виртуальный диск , смонтировать его и протестировать там свое приложение. Таким образом, диск «мало места на диске» изолирован от O.S. диски и другие приложения.

Для этого откройте Управление дисками и выберите Создать VHD. Выберите подходящий небольшой размер, создайте диск, инициализируйте его и сопоставьте его.

Кроме того, вы можете создать и смонтировать виртуальный диск с помощью утилиты командной строки DiskPart.

Сам VHD - это просто файл на вашем основном диске; это означает, что вы можете отправить VHD с любыми наборами тестов и смонтировать его перед запуском тестов. Это дает вам преимущество перед более «системными» подходами, такими как изменение дисковой квоты, потому что это может быть автоматизировано в ваших тестах с минимальными усилиями.

2 голосов
/ 20 марта 2012
throw new System.IO.IOException("There is not enough space on the disk.");
...