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                
#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                

Icon

Verify.Nupkg

Build status Nuget Downloads

扩展 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 已计算。
兼容的目标框架
包含的目标框架(在包中)
关于 目标框架.NET 标准 了解更多。

NuGet 包

此包未由任何 NuGet 包使用。

GitHub 仓库

此包未由任何流行的 GitHub 仓库使用。

版本 下载 最后更新
1.1.6 751 6/28/2024
1.1.5 621 6/3/2024
1.1.1 242 3/30/2024
1.0.16 136 3/22/2024
1.0.15 172 2/22/2024
1.0.13 96 2/12/2024
1.0.6 104 2/6/2024
1.0.3 104 2/6/2024