Unit testing 命令行中的Xamarin单元测试
我来自本地的iOS/Android开发背景,我试图理解使用命令行进行Xamarin单元测试的工具 在我看来,有两种类型的代码需要进行单元测试:Unit testing 命令行中的Xamarin单元测试,unit-testing,xamarin,xamarin.ios,xamarin.android,continuous-integration,Unit Testing,Xamarin,Xamarin.ios,Xamarin.android,Continuous Integration,我来自本地的iOS/Android开发背景,我试图理解使用命令行进行Xamarin单元测试的工具 在我看来,有两种类型的代码需要进行单元测试: 简单的旧C#代码-不依赖于任何iOS/Android框架-因此它不需要在iOS/Android模拟器上运行 依赖于需要在设备/模拟器上运行的iOS/Android框架的代码 这位官员提到了NUnitLite/Touch.Unit,但没有提到对命令行的任何支持。我确实找到了一个工具,但我不清楚这是否是一个由Xamarin正式支持的工具。此外,您似乎只能
- 简单的旧C#代码-不依赖于任何iOS/Android框架-因此它不需要在iOS/Android模拟器上运行
- 依赖于需要在设备/模拟器上运行的iOS/Android框架的代码
感谢您在Xamarin上进行单元测试 在单元测试移动项目方面没有丰富的经验,但如果您想测试应用程序,我建议您采用以下集成测试方法: 1) 对于任何计算类型的功能(您称之为“纯旧C#”)都可以使用NUnit(它受mono支持)。 然而,我不能给出这样的代码示例,因为繁重的计算应该在服务器端完成。在这里,您可以进行单独的单元测试 2) (再次NUnit)可以用来证明应用程序工作正常,用户界面交互调用所需的行为。 Xamarin还提供TestCloud,该应用程序可以在许多设备上进行测试,但它是付费的。作为替代方案,您可以设置像Jenkins这样的构建服务器来为您完成这项工作
无论如何,这是我对如何做到这一点的看法,希望它能回答您的问题。与Xamarin一起使用的最流行的单元测试框架是NUnit和XUnit。它们都类似于JUnit
Task("Run-Unit-Tests")
.IsDependentOn("Build")
.Does(() =>
{
NUnit("./src/**/bin/" + configuration + "/*.Tests.dll");
});
Task("Build")
.Does(() =>
{
DotNetBuild("YourAndroid.csproj");
DotNetBuild("YourCoreTests.csproj");
...
}
);
Cake附带一个引导程序文件(ps1-powershell for windows或sh for mac),该文件下载运行脚本所需的所有工具(Cake本身、nuget、nunit/xunit runner等)
您的命令行/CI可以这样运行:
./build.sh -Target Run-Unit-Tests
感谢您的深入回答,它提供了我想要的所有信息(加上一个与蛋糕脚本相关的额外信息,非常好)。是否也有方法收集代码覆盖率数据?对于代码覆盖率,我使用的是。不幸的是,它没有mono支持,所以我定义了一个jenkins作业/管道步骤,该步骤仅限于windows构建从属。还有,但我从来没有用过。