2016-09-08 3 views
3

내 테스트 케이스를 실행하지 않는 등 :NUnit과 내가 보이는 테스트 케이스를

namespace UnitTests 

[<TestFixture>] 
module ValidatorTests = 

    [<Test>] 
    let VerifyBasicFunctionality() = 
     Assert.That(bool) 
     Assert.That(bool) 

내가 비주얼 Stuido 테스트 탐색기에서 실행하려고 할 때, 아무것도 심지어 NUnit을위한 테스트 어댑터 (일어나지 않는다 3) "성공적인 빌드"라고 말하면서 테스트는 발견되지 않습니다. 나는 NUNIT - 콘솔 러너와 함께 명령 줄에서 실행할 때 다음 나는 다른 무언가를 얻을 수 (1 절, 2 절, 4 절과 시도) :

$ nunit-console4 bin/Release/UnitTests.dll 
NUnit version 2.4.8 
Copyright (C) 2002-2007 Charlie Poole. 
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov. 
Copyright (C) 2000-2002 Philip Craig. 
All Rights Reserved. 

Runtime Environment - 
    OS Version: Unix 15.6.0.0 
    CLR Version: 4.0.30319.42000 (4.4.2 (Stable 4.4.2.11/f72fe45 Thu Aug 11 06:03:25 BST 2016)) 

.N.N.N 
Tests run: 0, Failures: 0, Not run: 3, Time: 0.011 seconds 

나는 -xmlConsole 플래그와 함께이 실행 I 이 얻을 :

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<!--This file represents the results of running a test suite--> 
<test-results name="bin/Release/UnitTests.dll" total="0" failures="0" not-run="3" date="2016-09-08" time="10:26:00"> 
    <environment nunit-version="2.4.8.0" clr-version="4.0.30319.42000" os-version="Unix 15.6.0.0" platform="Unix" cwd="/SOMEUSER/SOMEPATH/UnitTests" machine-name="gmaini-m.jet.local" user="SOMEUSER" user-domain="SOMELOCALBOX" /> 
    <culture-info current-culture="en-US" current-uiculture="en-US" /> 
    <test-suite name="bin/Release/UnitTests.dll" success="True" time="0.010" asserts="0"> 
    <results> 
     <test-suite name="UnitTests" success="True" time="0.008" asserts="0"> 
     <results> 
      <test-suite name="ValidatorTests" success="True" time="0.001" asserts="0"> 
      <results> 
       <test-case name="UnitTests.ValidatorTests.VerifyBasicFunctionality" executed="False"> 
       <reason> 
        <message><![CDATA[UnitTests.ValidatorTests is an abstract class]]></message> 
       </reason> 
       </test-case> 
       <test-case name="UnitTests.ValidatorTests.VerifyBasicOtherFunctionality" executed="False"> 
       <reason> 
        <message><![CDATA[UnitTests.ValidatorTests is an abstract class]]></message> 
       </reason> 
       </test-case> 
       <test-case name="UnitTests.ValidatorTests.VerifyBasicSomeFunctionality" executed="False"> 
       <reason> 
        <message><![CDATA[UnitTests.ValidatorTests is an abstract class]]></message> 
       </reason> 
       </test-case> 
      </results> 
      </test-suite> 
     </results> 
     </test-suite> 
    </results> 

는 테스트를 발견하는 것 같다 왜 어떤 생각을, 나는 -run="Namespace.Module.Function"로 액세스 -fixture="Namespace"와기구에 대해 이야기 점 수 있지만이를 실행되지 않습니다? UnitTests.ValidatorTests.VerifyBasicFunctionality is an abstract class에는 C# interop 문제가 있다는 힌트가 있습니까? 시간 :

답변

1

에 대한

덕분에이 수정되었다 : 기본적으로

namespace UnitTests 

[<TestFixtureAttribute>] 
type ValidatorTests() = 

    [<Test>] 
    member __.VerifyBasicFunctionality() = 
     Assert.That(bool) 
     Assert.That(bool) 

,이 객체 지향하고. 그래서 내 가설은 옳았다.

+1

F # 모듈은 근본적으로 정적 클래스이지만 실행중인 NUnit의 오래된 (고대의) 버전은 정적 클래스에 대해 모르고 .NET이 정적 클래스를 구현하는 방식 때문에 추상으로 잘못 해석합니다. – Charlie

관련 문제