2015-06-15 2 views
0

Мне нужна помощь по следующей задаче: Я хочу измерить тестовое покрытие моноблока. Для этого я хочу использовать MonoCov. К сожалению, мои знания недостаточно хороши для создания инструмента на Mac. Даже этот article не мог мне помочь. Есть ли кто-то, кто сумел построить моноков на Mac и использовать его для измерения охвата тестирования?Как создать и использовать Моноков на Mac

ответ

3

Ну, похоже, что Xamarin удалил «внутренний» cov-профайлер, и моноки не будут выдавать какой-либо вывод (помимо монофайловой загрузки общей библиотеки, никаких функций не вызывается) по мере того, как api изменился.

Они добавили фильтр покрытия кода (7 апреля 2015 г.) в профилировщики основного журнала и, хотя я не смог найти какую-либо опубликованную документацию (?). Достаточно легко включить.

--profile=log:coverage 

coverage    enable collection of code coverage data 
covfilter=ASSEMBLY add an assembly to the code coverage filters 
        add a + to include the assembly or a - to exclude it 
        filter=-mscorlib 
covfilter-file=FILE use FILE to generate the list of assemblies to be filtered 

Git журнал информация об удалении коронавируса и журнал добавление фильтра покрытия:

commit 16570265149730ec6a4760cc0fa34decc1a9d981 
Author: Alex Rønne Petersen <[email protected]> 
Date: Tue Apr 7 14:51:27 2015 +0200 
     [profiler] Remove old mono-cov profiler. 
     We're replacing this with coverage support in the log profiler. 

commit e91693fbb87f687a2fdb5a495c945c1872b3066c 
Author: iain holmes <[email protected]> 
Date: Fri Feb 27 10:13:54 2015 +0000 
     [cov] Install a coverage filter 

Если вы все еще используете Mono 3.x, то мой первоначальный ответ будет работать:

Это некоторые старый код ...

Ниже перечислены шаги по сбору MonoCov, если у вас установлен Mono 4.0.x. Gui отлично работает, не уверен, работает ли фактический профилировщик (общая библиотека профилирования).

# Clone the MonoCov repo 
git clone https://github.com/mono/monocov.git MonoCov 
cd MonoCov 
# A really old version of cecil and it not available as a nuget 
curl http://go-mono.com/archive/cecil/cecil-0.6-bin.zip -o cecil-0.6-bin.zip 
unzip cecil-0.6-bin.zip 
# Make sure configure can find the Mono.Option source file 
export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/4.0.1/lib:/Library/Frameworks/Mono.framework/Versions/4.0.1/lib/pkgconfig:$PKG_CONFIG_PATH 
# Config to install to users home dir 
/configure --cecil=$PWD/monocov/cecil-0.6/Mono.Cecil.dll --prefix=$HOME/monocov 
# Fix Makefile, gmcs no longer exists under Mono 4.x and Makefile is hard coded 
sed -i.bak s/gmcs/mcs/g Makefile 
# Pass -m32 to make since OS-X Mono framework is still 32-bit 
CC="cc -m32" make 
# Install does not properly create bin dir, do it before the first install 
mkdir $HOME/monocov/bin 
# Install.. 
make install 
# Update your path 

Запустите графический интерфейс

# GUI Framework DllNotFoundException fix (if needed) 
export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/Mono.framework/Versions/Current/li b:/usr/local/lib:/usr/lib" 
# Update path to include MonoCov 
export PATH=$HOME/monconv/bin:$PATH 
monocov & 

Конечно, вам нужно будет нужно создать файл MonoCov «его» с помощью с помощью профиля, чтобы загрузить в него ...

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