LinuxやmacOS環境で dotnet test を実行してもテストができない

目次

概要

.NET Core と ASP.NET Core でWebアプリケーションを開発していた時に、.NET Core からxUnit を使いテストを書き、「dotnet test」コマンドを実行してテストをしようとしたら、エラーも何も表示されずにテストが実行されませんでした。

No test is available in *.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.

このように、エラーではなく実行可能なテストがないという情報が表示されました。

原因

このように表示される原因は、コマンドで開くことができる最大のファイルの数に問題があります。

コマンドで開くことができる最大のファイルの数は、「ulimit -n」コマンドで確認、設定でき、私の環境はmacOSなのですが、「ulimit -n」コマンドを実行すると「256」と表示されました。

これでは、最大で開けるファイルの数が少ないため「dotnet test」でテストが実行できませんでした。

解決方法

そこで、「ulimit」コマンドを使って最大で開けるファイルの数を変更します。

ulimit -n 4096

今回は、4096個までファイルを開けるようにしました。

このままでは、システムを再起動すると設定が戻ってしまい、また設定をし直す必要があります。

なので、再起動しても設定が継続するように、起動時にコマンドを実行するようにします。

echo 'ulimit -n 4096' >> ~/.bash_profile

これで、「dotnet test」の実行時にテストが実行されないということはなくなるはずです。