Mac OSX上MonoDevelop Unity版本的代码覆盖率
本文关键字:版本 代码覆盖率 Unity MonoDevelop OSX Mac | 更新日期: 2023-09-27 18:03:53
这是上下文:
我正在MonoDevelop (Unity版本)上测试NUnit应用程序。
我不使用UnityTestTools
我在c#中工作
我的问题:
我正在寻找一个解决方案来获得我的代码覆盖率。我实际上听说过MonoCov,但我不知道如何在我的OSX上安装它。我也在MonoDevelop中搜索这个选项,我看了一下StackOverFlow上的一些帖子,但没有,我没有找到任何适合我特殊情况的解决方案。
谁有解决办法?
取决于Mono的哪个版本正在运行测试:
。哪个Mono版本正在运行您的nunit测试,如果使用通过MonoDevelop嵌入的nunit,因此您正在使用正在运行MonoDevelop的Mono。如果你的测试是针对mono或加载一个单独的应用域,其中mono用于单元运行器/控制台等…
为什么?旧版本(3.x)包括内部覆盖分析器,但在新版本中,已被代码覆盖过滤器取代。
要使用旧的monocov分析器,您可以在"调试"运行program.exe(通过nunit runner, cmdline等)时添加mono选项"——profile=monocov"。这将生成一个"program.exe"。可以在MonoCov gui中加载的cov文件
较新的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环境):
# 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
免责声明:这是我的另一篇博客文章