Как отмечается в комментариях к проблеме, на которую ссылается Pablo notPicasso, вы пытаетесь использовать NUnit таким образом, чтобы он не был предназначен для использования. Разумеется, возможна глобальная настройка, но она выполняется до всех других тестовых выполнений . Источники тестовых наборов оцениваются как часть обнаружения теста , которое должно быть завершено до начала выполнения любого теста.
Обычно можно использовать глобальные настройки, уменьшив объем работы, выполняемой в вашем TestCaseSource. В любом случае это желательно - TestCaseSource всегда должен быть максимально легким.
В вашем примере не указано, что именно вы пытаетесь сделать до загрузки тестов. Если вы добавите больше информации, я могу уточнить этот ответ. Между тем, вот несколько примеров ...
Если ваш TestCaseSource создает экземпляры тестируемых объектов , не делайте этого . Вместо этого инициализируйте параметры, такие как строки и целые, которые будут использоваться в SetUp или OneTimeSetup для ваших тестов.
Если ваш TestCaseSource инициализирует базу данных , не делайте этого . Вместо этого сохраните параметры, необходимые для инициализации базы данных, и сделайте это в OneTimeSetUp на некотором уровне в иерархии тестов.
Надеюсь, вы поняли идею ... или предоставили дополнительную информацию о том, что вы делаете.
Выбранный обходной путь выглядит так, как будто он будет работать в текущей реализации. Тем не менее, это зависит от точного, неуказанного порядка, в котором NUnit работает внутри. Это может легко перестать работать в будущем выпуске.