Testing 测试NuGet包

Testing 测试NuGet包,testing,nuget,Testing,Nuget,我们是NuGet的大用户,我们有25-30个软件包,可以在网络共享中使用 我们希望能够在新软件包在消费应用程序中构建和发布之前对其进行测试。理想情况下,这可以通过使用特定的开发包(例如)来实现 有没有其他人想出了一个理想的、合理的、非黑客的方法呢 我们喜欢的方法是生成包程序集,然后手动覆盖包/目录中的程序集,即替换实际的项目引用,但这似乎不是特别干净 更新: 我们使用一个CI构建服务器,它在每次提交时创建构建,并有一个特定的手动触发的NuGet构建,该构建使用特定标记的代码库版本。我们不希望在每

我们是NuGet的大用户,我们有25-30个软件包,可以在网络共享中使用

我们希望能够在新软件包在消费应用程序中构建和发布之前对其进行测试。理想情况下,这可以通过使用特定的开发包(例如)来实现

有没有其他人想出了一个理想的、合理的、非黑客的方法呢

我们喜欢的方法是生成包程序集,然后手动覆盖包/目录中的程序集,即替换实际的项目引用,但这似乎不是特别干净

更新:


我们使用一个CI构建服务器,它在每次提交时创建构建,并有一个特定的手动触发的NuGet构建,该构建使用特定标记的代码库版本。我们不希望在每次提交后都创建一个NuGet构建,但是我们希望能够在触发手动NuGet包构建之前在野外测试一个可能的候选者

如果使用NuGet软件包分发库,则不应仅限于测试库。您还应该测试软件包本身(如果您的二进制文件正常,但安装不正确,那么使用者仍然有问题)。关键是要改善这种体验

一种方法是增加一个CI或QA存储库。您当前拥有的实际上是您的“生产”存储库,其中包含可消费版本,被视为高质量成品

进一步说,您可以有一个逻辑包推广流程(基于持续集成,甚至使用持续交付方法),其中: -每次签入都会在CI存储库中生成一个包 -测试人员选择CI包进行QA,如果发现可以,则将其升级为QA提要或生产提要(无论您喜欢什么,取决于您的测试质量和自动化程度)

实现此场景有多种方法,可以使用简单的网络共享、内部NuGet.Server或Gallery实现,也可以简单地使用,以最低的成本和零工作量进行尝试

希望有帮助

干杯,
Xavier

我最终编写了一个单元/集成测试框架来解决一个模拟问题。基本上,我需要验证软件包的内容、版本和信息、安装和卸载软件包时会发生什么情况、库中的程序集是什么版本、程序集生成为什么位(x86或x64)等等—我需要在未安装Visual Studio的情况下在我的生成计算机上运行(无头)作为一个质量门

站在巨人的肩膀上,像:,我把-

  • 将项目克隆到您的包目录中(您的.nuspec文件和包文件所在的目录)。如果出于任何原因,您希望将nuget测试项目保留为“git”repo,那么只需从下面的命令中删除“remove item nuget test/.git-Recurse-Force”

    git克隆https://github.com/nickfloyd/nuget-test.git; 删除项numget test/.git-Recurse-Force

  • 在PowerShell的x86实例的nuget测试目录的根目录中运行Setup.ps1

    PS>\setup.ps1

  • 编写测试并使用以下语法将它们放在nuget test/test目录中

  • 运行测试

    PS>Invoke Pester

  • 项目页面:
    在github上:


    我希望这能帮助您更接近您想要完成的工作。

    我们是一个内部仅供使用的开发团队,至少对于这一需求,我们只是在验证程序集是否正常后才这样做。典型的工作流程是AppDeveloper在包中发现bug。包开发人员(可能,但不一定是同一个人)将在包中创建测试,并创建一个候选构建-但是我们希望有一种优雅的方式在包被破坏的应用程序中测试包。Maven快照或开发构建非常适合此场景。NuGet没有这么简单的现成软件。请选中此链接[。简短的回答是,您可以添加另一个指向“未发布”软件包的软件包源(文件路径),然后使用软件包管理器控制台从该位置安装。