2015-09-24 4 views
0

У меня есть сборка, которая должна быть запущена в 64-битном процессе, но я не могу заставить ее работать в nunit runner.Как запустить тест nunit в 64 бит на MacOSX?

Я создал тестовый код, очень простой, просто распечатать размер указателя в основной функции и в тестовой NUnit функции:

using System; 
using NUnit.Framework; 

namespace PtrSize 
{ 
    class MainClass 
    { 
     [Test] 
     public static void Test() 
     { 
      Console.WriteLine ("IntPtr.Size    : {0}", IntPtr.Size); 
      Console.WriteLine ("Environment.Is64BitProcess : {0}", Environment.Is64BitProcess); 
     } 

     public static void Main (string[] args) 
     { 
      Console.WriteLine ("IntPtr.Size    : {0}", IntPtr.Size); 
      Console.WriteLine ("Environment.Is64BitProcess : {0}", Environment.Is64BitProcess); 
     } 
    } 
} 

Тогда я сделал следующие тесты:

первым я подтвердил моно будет 64bit построен

Build-Agent-Mac-01s-iMac:Debug BA-Mac-01$ ~/sandbox/mono64/bin/mono --version 
Mono JIT compiler version 3.10.0 (tarball Thu Jan 8 09:23:28 CET 2015) 
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com 
    TLS:   normal 
    SIGSEGV:  altstack 
    Notification: kqueue 
    Architecture: amd64 
    Disabled:  none 
    Misc:   softdebug 
    LLVM:   supported, not enabled. 
    GC:   sgen 

Затем я использую эту моно запустить мою тестовую программу, и она находится в процессе 64-битном:

Build-Agent-Mac-01s-iMac:Debug BA-Mac-01$ ~/sandbox/mono64/bin/mono PtrSize.exe 
IntPtr.Size    : 8 
Environment.Is64BitProcess : True 

Затем я использую nunit test runner для его запуска, и он всегда находится в 32-битном режиме, я также пытался использовать nunit-console-x86.exe, но все равно не помогает.

Build-Agent-Mac-01s-iMac:Debug BA-Mac-01$ ~/sandbox/mono64/bin/mono ~/Downloads/NUnit-2.6.4/bin/nunit-console.exe PtrSize.exe 
NUnit-Console version 2.6.4.14350 
Copyright (C) 2002-2012 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 14.5.0.0 
    CLR Version: 2.0.50727.1433 (Mono 3.5 (3.10.0 (tarball Thu Jan 8 09:23:28 CET 2015))) 

ProcessModel: Default DomainUsage: Single 
Execution Runtime: mono-3.5 
.IntPtr.Size    : 4 
Environment.Is64BitProcess : False 

Tests run: 1, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.0132951 seconds 
    Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0 

У любого органа есть идея по этой проблеме?

ответ

2

Начиная с версии Mono 4.2.1, установщик включает в себя 64-битную версию моно. К сожалению, команда nunit-console по-прежнему работает как 32-разрядная.

Чтобы запустить NUnit-консоль, как 64-битных, вам все равно придется использовать команду mono64:

mono64 /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/nunit-console.exe <path to dll> 
Смежные вопросы