ironおっpythonをnunitと絡めると垂れ落ちて死亡(?)
NUnitのテストクラス中で、IronPythonを利用してニャンニャンしようかと思ったのですが、どうも落ちる。
NUnit と IronPython は相性が悪い模様……? なお、NUnitは GUI/Console でも、x86指定が有るヤツ/無いヤツ問わず全てで「署名がうんこです。糞して寝ろ」って落ちます。 何故や…いや確かに、お腹痛かったけどさ…
同じ環境下での解決方法は今のところ見つかっておりませぬ…。 4時間ぐらいほっといたコーヒーがアカンかったのだろうか…
バージョンとか
- Visual C# 2008 Express Edition
- .NET Framework 3.5 SP1
- NUnit 2.6.1
- IronPython 2.6.1
…色々大人の事情があるんですえぇ……
エラー
SetUp : System.IO.FileLoadException : ファイルまたはアセンブリ 'Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'、またはその依存関係の 1 つが読み込めませんでした。厳密な名前の署名を確認できませんでした。アセンブリが故意に変更されているか、または適切な秘密キーを使用した完全署名ではない、遅延署名がされています。 (HRESULT からの例外: 0x80131045)
コード
using System.Text; using System.Net; using System.Collections.Specialized; using System.Collections.Generic; using Microsoft.Scripting.Hosting; using NUnit.Framework; namespace A { [TestFixture] class Programs { // コンソールアプリケーションあたりにして、単独で実行すると落ちない public static void Main(string[] args) { Programs p = new Programs(); p.ClassSetup(); } [TestFixtureSetUp] public void ClassSetup() { // ここで和式便器からうんこ漏らす ScriptEngine engine = IronPython.Hosting.Python.CreateEngine(); } [SetUp] public void Setup() { } [TearDown] public void TearDown() { } [TestFixtureTearDown] public void ClassTearDown() { } [Test] public void Test00() { } }; };
プロジェクトのアセンブリ参照
- IronPython
- IronPython.Modules
- Microsoft.Dynamic
- Microsoft.Scripting
- Microsoft.Scripting.Core
- Microsoft.Scripting.Debug
- nunit.framework
- System.
- System.Core
- System.Data
- System.Data.DataSetExtension
dll 的には
- IronPython.dll
- IronPython.Module.dll
- Microsoft.Dynamic.dll
- Microsoft.Scripting.Core.dll
- Microsoft.Scripting.dll
- Microsoft.Scripting.Debugging.dll
問題無かった環境
- Visual C# 2010 Express Edition
- .NET Framework 4.0 (SP??)
- NUnit 2.6.1
- IronPython 2.7.5
では、問題有りませんでした。 「今更 2008 (しかもEE) 使ってるおめーの環境がうんこなんだよ」って、はいすいませんすいません…