Verify.Nupkg 1.1.6
前缀已预留
dotnet add package Verify.Nupkg --version 1.1.6
NuGet\Install-Package Verify.Nupkg -Version 1.1.6
此命令应在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Verify.Nupkg" Version="1.1.6" />
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以便引用包。
paket add Verify.Nupkg --version 1.1.6
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
#r "nuget: Verify.Nupkg, 1.1.6"
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此内容复制到交互式工具或脚本的源代码中以便引用包。
// Install Verify.Nupkg as a Cake Addin #addin nuget:?package=Verify.Nupkg&version=1.1.6 // Install Verify.Nupkg as a Cake Tool #tool nuget:?package=Verify.Nupkg&version=1.1.6
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
Verify.Nupkg
扩展 Verify 以允许验证 NuGet .nupkg 文件。
该插件不会进行简单的二进制比较,因为这会导致大量的验证颠簸。相反,会验证 .nuspec 文件的内容以及包文件的树视图。
以下是向包中添加 README 产生的 diff 示例
--- a/manifest.verified.nuspec
+++ b/manifest.verified.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>SamplePackage</id>
<version>********</version>
<authors>SamplePackage</authors>
+ <readme>README.md</readme>
<description>Package Description</description>
<repository type="git" commit="****************************************" />
<dependencies>
<group targetFramework="net8.0" />
</dependencies>
</metadata>
</package>
--- a/contents.verified.txt
+++ b/contents.verified.txt
/
+|-- README.md
|-- SamplePackage.nuspec
|-- lib
| |-- net8.0
| | |-- SamplePackage.dll
验证包结构是防止意外破坏包的整体解决方案的一部分。如果您想要验证/避免破坏 API 更改,请查看 Microsoft.CodeAnalysis.PublicApiAnalyzers。如果您想遵循打包最佳实践(验证 README、可重复构建等),请查看 meziantou 的博客文章。
用法
[ModuleInitializer]
public static void Initialize() =>
VerifyNupkg.Initialize();
文件路径
[Fact]
public Task VerifyNupkgFile()
{
string packagePath = "path/to/package.nupkg";
VerifySettings settings = new();
settings.UseUniqueDirectory(); // Optional; group files into a directory
settings.ScrubNuspec(); // Scrub commit and other volatile information from nuspec
return VerifyFile(packagePath, settings);
}
排除文件
默认情况下,以下文件将从目录列表基准中排除
[Content_Types].xml
.psmdcp
_rels/.rels
若要自定义文件排除列表,请使用VerifySettings.AddNupkgDiffSettings()
。
VerifySettings settings = new();
settings.AddNupkgDiffSettings(settings =>
{
settings.ExcludedFiles = [new Regex(@"\.psmdcp$"), new Regex(@"^\[Content_Types\].xml$")];
});
自定义清洁工具
.nuspec文件通常包含验证的来源。例如使用VerifierSettings.ScrubNuspec()
如下所示
VerifySettings settings = new();
settings.ScrubNuspec();
这本身是ScrubNuspecVersion()
和ScrubNuspecCommit()
的便利方法。如果您想单独验证这些值中任何一个,也可以单独使用它们。
引用/定位同一个方案中构建的包
Verify非常适合编写NuGet包内容的集成/快照测试。然而,确保项目创建了一个新的NuGet包并为测试定位它可能会很脆弱。
为了简化这个过程,考虑使用GetPackFromProject来为您的前端项目构建NuGet包,并将它们放置在测试的输出目录中以便查找。
ASCII树
ASCII艺术树灵感来自于tree
命令,但进行了一些修改,以减少文件添加/删除时在差异中出现的“噪音”量。
图标
由Package设计,设计者为sandra,来源于The Noun Project。
产品 | 版本 兼容的和额外计算的目标框架版本。 |
---|---|
.NET | net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 兼容。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 兼容。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Framework | net472 兼容。 net48 已计算。 net481 已计算。 |
NuGet 包
此包未由任何 NuGet 包使用。
GitHub 仓库
此包未由任何流行的 GitHub 仓库使用。