2012-03-20 3 views
2

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

+4

без каких-либо подробностей о вашем приложении это сложно сказать - например, вы можете использовать виртуальную машину с настройкой «малых жестких дисков», или вы можете просто высмеять объект, обращающийся к диску, и выбросить исключение из пространства и посмотреть, что произойдет. .. – Yahia

+0

@Yahia: могу ли я просто создать большой файл с помощью команды fsutil file createnew. может ли это вызвать другие проблемы? –

+1

вы можете, НО, так как диск используется всей ОС (другие программы и т. Д.), Вы можете сделать всю машину неустойчивой (в зависимости от того, что работает с другим SW) ... – Yahia

ответ

7

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

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

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

Это может быть сделано through UI или просто через command line с fsutil:

fsutil quota modify k: 1000000 
+0

Могу ли я просто создать большой файл с помощью команды fsutil file createn. может ли это вызвать другие проблемы? –

+0

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

2
throw new System.IO.IOException("There is not enough space on the disk."); 
3

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

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

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

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

Смежные вопросы