2012-12-12 14 views
5

Test koşucusu olarak NUnit ile unquote kullanmayı deniyorum. test durumu Getting Started alınır ve beklendiği gibi NUnit dışında çalıştırmak çalışır zaman:Unquote'u kullanırken MissingMethodException,

FsTest.Tests.Example.foo: System.MissingMethodException: NUnit Altında

namespace FsTest.Tests 

open NUnit.Framework 
open Swensen.Unquote 

[<TestFixture>] 
module Example = 

    [<Test>] 
    let foo() = 
     test <@ (1+2)/3 = 1 @> 

Bu durum almak Yöntem bulunamadı: 'System.Tuple 2<Microsoft.FSharp.Collections.FSharpList 1, Microsoft.FSharp.Quotations.FSharpExpr> Internal.reduceFullyAndGetLast (Microsoft.FSharp.Quotations.FSharpExpr)'.

Yukarıdaki kodda bir sorun olup olmadığını ve nasıl çalışabileceğimi bilmek isterim. Unquote'un raise, eğer yardımcı olursa aynı şekilde benim için başarısız olur.

+0

"NUnit dışında çalıştır" ve "Under NUnit" ile ne demek istediğinizi açıklayabilir misiniz? Bu sorun, http://stackoverflow.com/q/7828852/236255'e benzer bir şekilde, xUnit.net GUI test koşucusu dışında, OP'nin FSharp.Core.dll –

+0

yanlış sürümünü referans aldığı öğrenildi * " NUnit "*, aynı çözümden F # Interactive veya bir komut satırı uygulamasını kullanmak anlamına gelir; * "NUnit Altında" * bir zip dosyası olarak indirilen bir stok NUnit 2.6.2 GUI çalıştırıcısı kullanmak anlamına gelir. FScharp.Core.dll test derlemesinden başvurulan: ''. Her şey VS 2012'yi hedefleyen VS 2012'dir. –

cevap

8

Sorununuzun açıklamasına dayanarak, Unquote'un en yeni sürümü .NET 4.0 için oluşturulduğundan ve NUnit projenizi bir FSharp.Core bağdaştırıcı yönlendirmesiyle 4.0.0.0'dan sürüm 4.3.0.0'a yapılandırmanız gerektiğinden şüpheleniyorum. test projesi hedefleri. NET 4.5.

Ayrıntılar için Unquote konusuna bakın. Senin bir NUnit projesi için bu koymak gerekir tam olarak nerede yapılandırma emin değilim

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
    <legacyUnhandledExceptionPolicy enabled="true" /> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity 
      name="FSharp.Core" 
      publicKeyToken="b03f5f7f11d50a3a" 
      culture="neutral"/> 
     <bindingRedirect 
      oldVersion="2.0.0.0" 
      newVersion="4.3.0.0"/> 
     <bindingRedirect 
      oldVersion="4.0.0.0" 
      newVersion="4.3.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

gibi bir şey olacağına inanıyorum, ama belki Project Editor aracılığıyla belirtilen yapılandırma dosyasında?

Maalesef, VS2012 yüklü değil ve bu sorunu sizin için gerçekten teşhis etme yeteneğimde biraz sakat kaldım.

+1

Harika, bu yardımcı oldu, teşekkürler. İlgilenenler için, NUnit, test DLL'lerini yapılandırmak için ' .dll.config' kullanır, bu yüzden bu ayarları koyarsınız. –

İlgili konular