2016-01-20 3 views
0

Я пытаюсь запустить некоторые базовые тесты с помощью Nunit на OSX.Nunit on Mono (OSX) не будет запускать тесты - mono_defaults.runtimetype_class! = 0

mono --version

Mono JIT компилятор версии 4.2.1 (явное/6dd2d0d Вт 10 ноября 18:01:18 EST 2015)

Nunit:

which nunit-console

/USR/местные/bin/nunit-console

Также Nunit4:

which nunit-console4

/USR/местные/бен/NUnit-console4

Я пытаюсь запустить базовую библиотеку тестов, используя следующие:

nunit-console Tests.dll

Но я получаю следующий след:

* Assertion at domain.c:718, condition `mono_defaults.runtimetype_class != 0' not met 


Native stacktrace: 

    0 mono        0x000c91c6 mono_handle_native_sigsegv + 342 
    1 mono        0x001198d1 sigabrt_signal_handler + 129 
    2 libsystem_platform.dylib   0x95d9101b _sigtramp + 43 
    3 ???         0xffffffff 0x0 + 4294967295 
    4 libsystem_c.dylib     0x90304c34 abort + 156 
    5 mono        0x0026dd11 monoeg_log_default_handler + 129 
    6 mono        0x0026de0b monoeg_assertion_message + 107 
    7 mono        0x001d8f04 mono_init_internal + 5860 
    8 mono        0x001d92b8 mono_init_from_assembly + 24 
    9 mono        0x00017c6f mini_init + 2063 
    10 mono        0x000937e0 mono_main + 4912 
    11 mono        0x0000c690 main + 768 
    12 mono        0x0000c385 start + 53 
    13 ???         0x00000004 0x0 + 4 

Debug info from gdb: 

(lldb) command source -s 0 '/tmp/mono-gdb-commands.7rUr4M' 
Executing commands in '/tmp/mono-gdb-commands.7rUr4M'. 
(lldb) process attach --pid 6044 
Process 6044 stopped 
* thread #1: tid = 0x403d0, 0x993ced06 libsystem_kernel.dylib`__wait4 + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP 
    frame #0: 0x993ced06 libsystem_kernel.dylib`__wait4 + 10 
libsystem_kernel.dylib`__wait4: 
-> 0x993ced06 <+10>: jae 0x993ced16    ; <+26> 
    0x993ced08 <+12>: calll 0x993ced0d    ; <+17> 
    0x993ced0d <+17>: popl %edx 
    0x993ced0e <+18>: movl 0xab94317(%edx), %edx 

Executable module set to "/Library/Frameworks/Mono.framework/Versions/4.2.1/bin/mono". 
Architecture set to: i386-apple-macosx. 
(lldb) thread list 
Process 6044 stopped 
* thread #1: tid = 0x403d0, 0x993ced06 libsystem_kernel.dylib`__wait4 + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP 
    thread #2: tid = 0x403d8, 0x993ce402 libsystem_kernel.dylib`__psynch_cvwait + 10 
(lldb) thread backtrace all 
* thread #1: tid = 0x403d0, 0x993ced06 libsystem_kernel.dylib`__wait4 + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP 
    * frame #0: 0x993ced06 libsystem_kernel.dylib`__wait4 + 10 
    frame #1: 0x903247dc libsystem_c.dylib`waitpid$UNIX2003 + 48 
    frame #2: 0x000c928d mono`mono_handle_native_sigsegv(signal=6, ctx=0xbfff62ac, info=0xbfff626c) + 541 at mini-exceptions.c:2193 [opt] 
    frame #3: 0x001198d1 mono`sigabrt_signal_handler(_dummy=<unavailable>, _info=<unavailable>, context=<unavailable>) + 129 at mini-posix.c:208 [opt] 
    frame #4: 0x95d9101b libsystem_platform.dylib`_sigtramp + 43 
    frame #5: 0x993ce58b libsystem_kernel.dylib`__pthread_kill + 11 
    frame #6: 0x91ef3448 libsystem_pthread.dylib`pthread_kill + 101 
    frame #7: 0x90304c34 libsystem_c.dylib`abort + 156 
    frame #8: 0x0026dd11 mono`monoeg_log_default_handler(log_domain=<unavailable>, log_level=<unavailable>, message=<unavailable>, unused_data=<unavailable>) + 129 at goutput.c:233 [opt] 
    frame #9: 0x0026de0b mono`monoeg_assertion_message [inlined] monoeg_g_logv(log_level=G_LOG_LEVEL_ERROR, format=<unavailable>) + 85 at goutput.c:113 [opt] 
    frame #10: 0x0026ddb6 mono`monoeg_assertion_message(format=<unavailable>) + 22 at goutput.c:133 [opt] 
    frame #11: 0x001d8f04 mono`mono_init_internal(filename=<unavailable>, exe_filename=<unavailable>, runtime_version=<unavailable>) + 5860 at domain.c:718 [opt] 
    frame #12: 0x001d92b8 mono`mono_init_from_assembly(domain_name="/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.5/nunit-console.exe", filename="/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.5/nunit-console.exe") + 24 at domain.c:893 [opt] 
    frame #13: 0x00017c6f mono`mini_init(filename=<unavailable>, runtime_version=<unavailable>) + 2063 at mini-runtime.c:3069 [opt] 
    frame #14: 0x000937e0 mono`mono_main(argc=4, argv=0xbfff6740) + 4912 at driver.c:1907 [opt] 
    frame #15: 0x0000c690 mono`main [inlined] mono_main_with_options(argc=<unavailable>, argv=<unavailable>) + 768 at main.c:94 [opt] 
    frame #16: 0x0000c3ad mono`main(argc=<unavailable>, argv=<unavailable>) + 29 at main.c:125 [opt] 
    frame #17: 0x0000c385 mono`start + 53 

    thread #2: tid = 0x403d8, 0x993ce402 libsystem_kernel.dylib`__psynch_cvwait + 10 
    frame #0: 0x993ce402 libsystem_kernel.dylib`__psynch_cvwait + 10 
    frame #1: 0x91ef1f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 
    frame #2: 0x91ef5cc0 libsystem_pthread.dylib`pthread_cond_wait$UNIX2003 + 71 
    frame #3: 0x0023c852 mono`thread_func(thread_data=0x00000000) + 466 at sgen-thread-pool.c:118 [opt] 
    frame #4: 0x91ef1a26 libsystem_pthread.dylib`_pthread_body + 138 
    frame #5: 0x91ef199c libsystem_pthread.dylib`_pthread_start + 155 
    frame #6: 0x91eeef96 libsystem_pthread.dylib`thread_start + 34 
(lldb) detach 

================================================================= 
Got a SIGABRT while executing native code. This usually indicates 
a fatal error in the mono runtime or one of the native libraries 
used by your application. 
================================================================= 

Process 6044 detached 
(lldb) quit 
[1] 6044 abort  nunit-console Tests.dll 

Я не верю, что это проблема с моими испытаниями, поскольку он бросает то же самое проследить, когда только при попытке открыть NUnit-консоль с помощью аргумента:

nunit-console4 --help

Я вижу, что это бросают в строке 718 файла здесь:

https://github.com/mono/mono/blob/master/mono/metadata/domain.c

mono_defaults.runtimetype_class = mono_class_from_name (
      mono_defaults.corlib, "System", "RuntimeType"); 
g_assert (mono_defaults.runtimetype_class != 0); 

Я как бы проиграл на этом этапе, поскольку ошибка не очень многословна - мне кажется, что есть проблема с моей конфигурацией, которая предотвращает запуск Nunit должным образом.

Благодаря

ответ

1

Вы, возможно, потребуется переустановить/обновить Mono. Я бегу немного более новую версию, и я могу подтвердить, что

nunit-console --help 

работает просто отлично на моей системе со следующими версиями -

mono --version 
Mono JIT compiler version 4.2.1 (Stable 4.2.1.102/6dd2d0d Wed Dec 2 14:02:16 PST 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 

и во время выполнения

dnvm list 

Active Version    Runtime Arch Location    Alias 
------ -------    ------- ---- --------    ----- 
     1.0.0-beta4   mono   ~/.dnx/runtimes 
    * 1.0.0-rc1-update1 mono   ~/.dnx/runtimes  default 

EDIT: nunit-console script

#!/bin/sh 
exec /usr/local/Cellar/mono/4.2.1.102_1/bin/mono --debug $MONO_OPTIONS /usr/local/Cellar/mono/4.2.1.102_1/lib/mono/4.5/nunit-console.exe "[email protected]" 
+0

Я обновился до 4.3.3, но, к сожалению, все еще вижу то же самое. Какую систему и версию OSX вы используете, пожалуйста? –

+0

Я нахожусь в середине '12 MBP Retina running 10.10.5. Я добавил содержание моего скрипта nunit-console4 выше. Может быть, это отключилось для вас? – richardsonmarkj

+0

Спасибо за это - мне все еще не повезло запустить его прямо с Mono, в настоящее время я загрузил Nunit и запустил его непосредственно из файлов пакета - надеюсь, я смогу исправить его в ближайшее время :( –

Смежные вопросы