运行 从命令行在 Ubuntu 上进行 NUnit 测试
Run NUnit test on Ubuntu from command line
如何从命令行 运行 在 Ubuntu 上进行 NUnit 测试?
我创建了文件OnlyTest.cs
using System;
using System.Text;
using System.Collections.Generic;
using NUnit.Framework;
[TestFixture]
public class OnlyTest
{
[Test]
public void MyTest()
{
int a = 10;
Assert.AreEqual(10, a);
}
}
根据文章 Running NuGet command-line on Linux 我已经下载了文件 NuGet.exe 和 Microsoft.Build.dll
我已经 运行 NuGet 安装 NUnit
$ mono NuGet.exe install NUnit
Installing 'NUnit 2.6.4'.
Successfully installed 'NUnit 2.6.4'.
$ ls -lR
.:
razem 1668
-rw-rw-r-- 1 mw mw 28861 cze 24 23:45 Microsoft.Build.zip
-rw-rw-r-- 1 mw mw 1664512 cze 24 23:42 NuGet.exe
drwxrwxr-x 3 mw mw 4096 cze 25 00:29 NUnit.2.6.4
-rw-rw-r-- 1 mw mw 208 cze 25 00:27 OnlyTest.cs
./NUnit.2.6.4:
razem 108
drwxrwxr-x 2 mw mw 4096 cze 25 00:29 lib
-rw-rw-r-- 1 mw mw 1131 cze 25 00:29 license.txt
-rw-rw-r-- 1 mw mw 99004 cze 25 00:29 NUnit.2.6.4.nupkg
./NUnit.2.6.4/lib:
razem 720
-rw-rw-r-- 1 mw mw 151552 cze 25 00:29 nunit.framework.dll
-rw-rw-r-- 1 mw mw 584600 cze 25 00:29 nunit.framework.xml
因为我不确定编译和运行宁
编译没有产生任何错误
mcs OnlyTest.cs -target:library -r:NUnit.2.6.4/lib/nunit.framework.dll -out:OnlyTest.dll
但是当我尝试 运行 nunit 时,我得到类似
的错误
$ nunit-console OnlyTest.dll -noresult
NUnit-Console version 2.6.0.0
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 3.16.0.30
CLR Version: 4.0.30319.17020 ( Mono 4.0 ( 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1.1) ) )
ProcessModel: Default DomainUsage: Single
Execution Runtime: mono-4.0
Missing method .ctor in assembly /[MY_PATH]/OnlyTest.dll, type NUnit.Framework.TestFixtureAttribute
Can't find custom attr constructor image: /[MY_PATH]/OnlyTest.dll mtoken: 0x0a000001
Could not load file or assembly 'nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies.
nunit-gui
也一样
Could not load file or assembly 'nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77'
检查安装了哪些 nunit-console/nunit 个程序集...我假设它正在获取 GAC 中的旧程序集。
让我们从头开始:
获取最新最好的 NUnit AND 它是 运行ner 工具
curl https://api.nuget.org/downloads/nuget.exe -o nuget.exe
mono nuget.exe install NUnit
mono nuget.exe install NUnit.Runners
确保单声道首先找到那些程序集(相对于 GAC)
export MONO_PATH=$(PWD)/NUnit.Runners.2.6.4/tools:$(PWD)/NUnit.2.6.4/lib
创建您的测试示例并编译它:
vi OnlyTest.cs #Using the example in your question
mcs OnlyTest.cs -target:library -r:NUnit.2.6.4/lib/nunit.framework.dll -out:OnlyTest.dll
运行它:
mono ./NUnit.Runners.2.6.4/tools/nunit-console.exe OnlyTest.dll -noresult
输出:
Using default runtime: v4.0.30319
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.3.0.0
CLR Version: 4.0.30319.17020 ( Mono 4.0 ( 4.3.0 (master/b044a27 Thu Jun 18 15:17:08 PDT 2015) ) )
ProcessModel: Default DomainUsage: Single
Execution Runtime: mono-4.0
.
Tests run: 1, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.0280499 seconds
Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0
仅供参考:我在 OS-X 上从源代码构建单声道,官方 disto 仍然是 32 位。
获取 Ubuntu 上的最新最精彩内容:
Debian、Ubuntu 和衍生产品
将 Mono Project GPG 签名密钥和包存储库添加到您的系统(如果您不使用 sudo,请务必切换到 root):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
运行 软件包升级,将现有软件包升级到最新的可用软件包。然后按照使用部分中的描述安装 Mono。
注意:虽然 APT 软件包是针对 Debian Wheezy 构建的,但它与许多 Debian 衍生产品(包括 Ubuntu)兼容,这意味着您可以在所有这些发行版中使用相同的存储库。
http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives
如何从命令行 运行 在 Ubuntu 上进行 NUnit 测试?
我创建了文件OnlyTest.cs
using System;
using System.Text;
using System.Collections.Generic;
using NUnit.Framework;
[TestFixture]
public class OnlyTest
{
[Test]
public void MyTest()
{
int a = 10;
Assert.AreEqual(10, a);
}
}
根据文章 Running NuGet command-line on Linux 我已经下载了文件 NuGet.exe 和 Microsoft.Build.dll
我已经 运行 NuGet 安装 NUnit
$ mono NuGet.exe install NUnit Installing 'NUnit 2.6.4'. Successfully installed 'NUnit 2.6.4'. $ ls -lR .: razem 1668 -rw-rw-r-- 1 mw mw 28861 cze 24 23:45 Microsoft.Build.zip -rw-rw-r-- 1 mw mw 1664512 cze 24 23:42 NuGet.exe drwxrwxr-x 3 mw mw 4096 cze 25 00:29 NUnit.2.6.4 -rw-rw-r-- 1 mw mw 208 cze 25 00:27 OnlyTest.cs ./NUnit.2.6.4: razem 108 drwxrwxr-x 2 mw mw 4096 cze 25 00:29 lib -rw-rw-r-- 1 mw mw 1131 cze 25 00:29 license.txt -rw-rw-r-- 1 mw mw 99004 cze 25 00:29 NUnit.2.6.4.nupkg ./NUnit.2.6.4/lib: razem 720 -rw-rw-r-- 1 mw mw 151552 cze 25 00:29 nunit.framework.dll -rw-rw-r-- 1 mw mw 584600 cze 25 00:29 nunit.framework.xml
因为我不确定编译和运行宁
编译没有产生任何错误
mcs OnlyTest.cs -target:library -r:NUnit.2.6.4/lib/nunit.framework.dll -out:OnlyTest.dll
但是当我尝试 运行 nunit 时,我得到类似
的错误$ nunit-console OnlyTest.dll -noresult NUnit-Console version 2.6.0.0 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 3.16.0.30 CLR Version: 4.0.30319.17020 ( Mono 4.0 ( 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1.1) ) ) ProcessModel: Default DomainUsage: Single Execution Runtime: mono-4.0 Missing method .ctor in assembly /[MY_PATH]/OnlyTest.dll, type NUnit.Framework.TestFixtureAttribute Can't find custom attr constructor image: /[MY_PATH]/OnlyTest.dll mtoken: 0x0a000001 Could not load file or assembly 'nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies.
nunit-gui
Could not load file or assembly 'nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77'
检查安装了哪些 nunit-console/nunit 个程序集...我假设它正在获取 GAC 中的旧程序集。
让我们从头开始:
获取最新最好的 NUnit AND 它是 运行ner 工具
curl https://api.nuget.org/downloads/nuget.exe -o nuget.exe
mono nuget.exe install NUnit
mono nuget.exe install NUnit.Runners
确保单声道首先找到那些程序集(相对于 GAC)
export MONO_PATH=$(PWD)/NUnit.Runners.2.6.4/tools:$(PWD)/NUnit.2.6.4/lib
创建您的测试示例并编译它:
vi OnlyTest.cs #Using the example in your question
mcs OnlyTest.cs -target:library -r:NUnit.2.6.4/lib/nunit.framework.dll -out:OnlyTest.dll
运行它:
mono ./NUnit.Runners.2.6.4/tools/nunit-console.exe OnlyTest.dll -noresult
输出:
Using default runtime: v4.0.30319
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.3.0.0
CLR Version: 4.0.30319.17020 ( Mono 4.0 ( 4.3.0 (master/b044a27 Thu Jun 18 15:17:08 PDT 2015) ) )
ProcessModel: Default DomainUsage: Single
Execution Runtime: mono-4.0
.
Tests run: 1, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.0280499 seconds
Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0
仅供参考:我在 OS-X 上从源代码构建单声道,官方 disto 仍然是 32 位。
获取 Ubuntu 上的最新最精彩内容:
Debian、Ubuntu 和衍生产品 将 Mono Project GPG 签名密钥和包存储库添加到您的系统(如果您不使用 sudo,请务必切换到 root):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
运行 软件包升级,将现有软件包升级到最新的可用软件包。然后按照使用部分中的描述安装 Mono。
注意:虽然 APT 软件包是针对 Debian Wheezy 构建的,但它与许多 Debian 衍生产品(包括 Ubuntu)兼容,这意味着您可以在所有这些发行版中使用相同的存储库。
http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives