Intro摘要:dotnet-exec是一个 dotnet tool 一个命令行小工具,可以帮助我们方便地执行 C# 代码,可以用来运行一些简单的 C# 程序而无需创建项目文件,让 C# 像 python/nodejs 一样简单,而且可以自定义项目的入口方法,支持但不限于 M
dotnet-exec是一个 dotnet tool 一个命令行小工具,可以帮助我们方便地执行 C# 代码,可以用来运行一些简单的 C# 程序而无需创建项目文件,让 C# 像 python/nodejs 一样简单,而且可以自定义项目的入口方法,支持但不限于 Main 方法。
dotnet-exec0.27.0 发布了,新增了 xunit test case 的支持,可以执行某个 test case 文件
Installdotnet-exec是一个 dotnet tool,可以使用安装 dotnet tool 的命令来安装安装/更新最新稳定版本:
dotnet tool update -g dotnet-execute安装最新的 preview 版本:
dotnet tool update -g dotnet-execute --prerelease执行dotnet-exec -h或者dotnet-exec --help即可看到一些使用说明
也可以通过 docker/podman 来在不安装 dotnet sdk 的情况下体验,例如:
docker run --rm --pull=always weihanli/dotnet-exec:0.27.0 "ApplicationHelper.RuntimeInfo"docker如果在 GitHub Action 中使用又不想安装 dotnet-sdk 可以试试这个打包好的 github action
-name:dotnet-execscriptuses:WeihanLi/dotnet-exec-action@0.27.0
with:
script:"./build/build.cs"# script text or script path
options:"--web --debug"# optional
arguments:"target=test"# optional
Xunit test support
在 0.27.0 版本中新增了 test 命令,目前可以用它来跑 xunit 的 test case,使用方式如下:
dotnet-exec testResultTest.cs也可以测试原始的 test case 代码,例如
dotnet-exec test"public class Tests { [Fact] public void Test1 { Assert.Equal(3, 1 + 2); } }"如果 test case 有依赖其他项目或者 nuget 包引用,可以使用-r/--reference来添加引用(包含但不限于 NuGet 包引用)以及 -u/--using 添加命名空间引用dotnet-exec testResultTest.cs -r "nuget: WeihanLi.Common, 1.0.76"
实现方式是基于 xunit.v3 来实现的,xunit.v3 的测试程序可以是一个 exe 程序,可以直接运行不需要借助额外的 test runner, 如之前的 vstest 和最近的 Microsoft Testing Platform,xunit.v3 内置了一个 test runner,测试项目在编译的时候会通过 MSBuild 生成一个入口方法,也就是生成一个 Main 方法来提供一个项目入口,具体的实现代码和项目配置有关系,下面是一个使用了 xunit v3 的一个单元测试项目的反编译示例
有看到有些朋友会使用 test case 来写一些示例,希望这一功能帮助更方便地执行 test case,可能会有一些小 bug,欢迎测试和反馈
References来源:opendotnet