やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Raspbian stretch MonoDevelop で NUnit プロジェクトがメモリ不足により実行できない

 これはひどい

問題のエラー

f:id:ytyaru:20190131155035p:plain

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のソリューション新規作成ダイアログにて以下を選択して生成されたプロジェクトによって発生した。

  • その他 > .NET > 全般 > NUnit ライブラリ プロジェクト

NUnitバージョンが古い

   どうでもいいがNUnitのバージョンが古い。dotnetコマンドのNUnitは3だった。戦術のエラーダイアログにあるパスを見るとNUnit2となっている。古い。

対象環境

所感

 せっかく前回いい感じになるよう考えたのに頓挫した……。

 dotnetコマンドでなら単体テストが実行できたことを以前に確認していた。どうやらラズパイでC#単体テストをするときはdotnetコマンドで実行するしかないようだ……。