簡體   English   中英

Mac OSX上MonoDevelop Unity版本的代碼覆蓋率

[英]Code Coverage for MonoDevelop Unity version on Mac OSX

所以這是上下文:

  • 我正在MonoDevelop(Unity版本)上使用NUnit測試應用程序。

  • 我不使用UnityTestTools。

  • 我在用C#工作

我的問題 :

我正在尋找一種解決方案來覆蓋我的代碼。 我實際上聽說過MonoCov,但是我不知道如何在OSX上安裝它。 我也在MonoDevelop中搜索此選項,並在StackOverFlow上查看了一些帖子,但沒有找到針對我的特殊情況的任何解決方案。

那么有人有解決方案嗎?

取決於實際運行測試的Mono版本

例如,如果使用通過MonoDevelop嵌入的nunit,則哪個Mono版本正在運行您的nunit測試,因此您正在使用運行MonoDevelop的Mono。 如果您的測試要使用Mono或加載單獨的應用程序域,則該Mono用於單元運行器/控制台等。

為什么? 較舊的版本(3.x)包含內部cov探查器,但是在較新的版本中,它已被代碼覆蓋率過濾器取代

要使用較舊的monocov分析器,請在“調試”運行program.exe時(通過nunit運行器,cmdline等)添加單聲道選項“ --profile = monocov”。 這將生成一個“ program.exe.cov”文件,可以將其加載到MonoCov gui中。

較新的mono版本使用探查器覆蓋率過濾器“ --profile = log:coverage”,它產生如下輸出,並且沒有像MonoCov這樣的gui,它會產生純文本:

Coverage Summary:
    xCorFlags (/Users/administrator/code/corflags/xCorFlags.exe) 26% covered (42 methods - 11 covered)
        <Module> ?% covered (0 methods - 1 covered)
        CorFlags.CorFlagsSettings 25% covered (4 methods - 1 covered)
        CorFlags.MainClass 50% covered (2 methods - 1 covered)
        CorFlags.CommandLineParser 40% covered (20 methods - 8 covered)

免責聲明:那是我自己的博客文章

如果您使用的是Mono的舊版本(由於Unity ?,現在使用的是哪個版本?),那么movcov分析器“應該”工作並生成.cov文件。 到那時,您只需要可以從源代碼構建的MonoCov Gui(更新以下內容以匹配您的OS-X env):

# 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.3/lib:/Library/Frameworks/Mono.framework/Versions/4.0.3/lib/pkgconfig:$PKG_CONFIG_PATH
export 
# 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

免責聲明:這是從另一篇博客中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM