xunit テスト ランナーが特定のクラスに対して一度に 1 つずつテストを実行するようにするにはどうすればよいですか?
順序は重要ではありません (すべてのテストは現在のカルチャを変更します)
xunit テスト ランナーが特定のクラスに対して一度に 1 つずつテストを実行するようにするにはどうすればよいですか?
順序は重要ではありません (すべてのテストは現在のカルチャを変更します)
tearDown
唯一の簡単な解決策は、メソッドを使用して文化をリセットすることだと思います。
現在のカルチャはグローバル変数であり、グローバル変数は常に単体テストの問題です。そのため、VM を再起動して、テストごとにデフォルト値にリセットする必要があります。これはスレッド ローカルであるため、必須ではありませんが、ユニット テストごとにテスト フレームワークを強制的に新しいスレッドにまたがらせることができれば、それも機能する可能性があります。しかし、それはすべて黒魔術であり、単体テストをより重くします。
別の方法として、コードをリファクタリングして、現在のカルチャ ホルダーを挿入することもできます。この場合、単体テストでカルチャ ホルダーをモックし、グローバル変数にカルチャを保持する単純な実装を渡すことができます。