環境

Linux Ubuntu 18.04

.NET Core 3.1

NUnit 3.12.0

結論

AppContext.BaseDirectory.Substring(0, AppContext.BaseDirectory.IndexOf("bin"));

でテストプロジェクトの絶対パスが手に入る。

例えば

~/work/hogeProgram/tests/hogeTests.cs

みたいな構造になっているとすると、hogeTests.cs内で

AppContext.BaseDirectory

を利用しても

~/work/hogeProgram/tests/bin/Debug/netcoreapp3.1

みたいにアセンブリーが入ったディレクトリを取得してきてしまう。

従って bin以降のパスを削除すればテストプロジェクトの絶対パスが手に入ります。