Поскольку тест dart параллельный, я столкнулся с проблемой, что еще два класса, использующие одну и ту же папку, не могут быть удалены должным образом.
Давайте рассмотрим структуру папок:
Utility
- a_utility
- b_utility
, потому что Utility
может быть пустым, AUtilityClasss
автоматически создаст Utility
и sub-direcoty a_utility
, и будет очищено в teardown()
. Поэтому я удаляю Utility
в teardown()
, чтобы быть уверенным, что следующий тест не будет зависимым от предыдущего.
Но тест дротика параллелен по умолчанию, если есть два класса (BUtilityClasss
, CUtilityClasss
, ...) которые зависят от того же каталога, teardown()
может привести к ошибке (Ошибка: Can't delete because of in used
или Already Deleted
) и может также повлиять на тесты в других b_utiliy_test.dart
, которые не будут выполнены. Текущий обходной путь, который я пытался предотвратить в этой ситуации, состоит в том, чтобы назначить -j1
аргумент, и нет двух параллельных тестов, поэтому он будет безопасным.
Поэтому речь идет о двух вопросах.
- Как проверить, что два класса используют один и тот же каталог?
- Реконструировать классы в одном классе, чтобы соответствовать тесту?
Я не могу найти ни одного обсуждения, любая информация приветствуется!