Raspbian stretch MonoDevelop で NUnit プロジェクトがメモリ不足により実行できない
問題のエラー
Debugger operation failed ApplicationName='/usr/bin/mono', CommandLine=' --debug --debugger-agent=transport=dt_socket,address=127.0.0.1:34931 "/usr/lib/monodevelop/AddIns/MonoDevelop.UnitTesting/NUnit2/NUnitRunner.exe" 43349 False', CurrentDirectory='.', Native error= Out of memory
最後の方にあるOut of memory
という絶望の一言。メモリ不足。ラズパイ3B+はメモリが1GBしかないからだろう。
一応、テスト実行結果のエラーログをコピペしたのが以下。AggreageException
。
One or more errors occurred. (Not connected) スタック トレース: at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <d12c28b62aae4d6a8538bd459a44c461>:0 at System.Threading.Tasks.Task`1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x0002b] in <d12c28b62aae4d6a8538bd459a44c461>:0 at System.Threading.Tasks.Task`1[TResult].get_Result () [0x0000f] in <d12c28b62aae4d6a8538bd459a44c461>:0 at MonoDevelop.UnitTesting.NUnit.NUnitAssemblyTestSuite.RunUnitTest (MonoDevelop.UnitTesting.UnitTest test, System.String suiteName, System.String pathName, System.String testName, MonoDevelop.UnitTesting.TestContext testContext) [0x00245] in <de3b0f97969d4f8db1dbef3f3d24ebec>:0 at MonoDevelop.UnitTesting.NUnit.NUnitAssemblyTestSuite.OnRun (MonoDevelop.UnitTesting.TestContext testContext) [0x00001] in <de3b0f97969d4f8db1dbef3f3d24ebec>:0 at MonoDevelop.UnitTesting.UnitTest.Run (MonoDevelop.UnitTesting.TestContext testContext) [0x00020] in <f77703ec42fb4d3aa5cb6e668071d8e6>:0
対象プロジェクト
今回のエラーはMonoDevelopのソリューション新規作成ダイアログにて以下を選択して生成されたプロジェクトによって発生した。
NUnitバージョンが古い
どうでもいいがNUnitのバージョンが古い。dotnetコマンドのNUnitは3だった。戦術のエラーダイアログにあるパスを見るとNUnit2
となっている。古い。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-06-27
- Mono 5.18.0.240
- MonoDevelop 7.6 build 711
- Eto.Forms 2.4.1 拡張機能, NuGetパッケージ
- .NET Core 2.2, MonoDevelop参照方法
所感
せっかく前回いい感じになるよう考えたのに頓挫した……。
dotnetコマンドでなら単体テストが実行できたことを以前に確認していた。どうやらラズパイでC#の単体テストをするときはdotnetコマンドで実行するしかないようだ……。