使用一个变量执行NUnit测试用例

本文关键字:变量 执行 NUnit 测试用例 一个 | 更新日期: 2023-09-27 18:20:17

我有许多用C#编写的Selenium测试,这些测试正在编译到.dll中,该dll使用nunit-console.exe从命令行运行。

这些测试目前在由一个站点组成的测试环境中运行良好,但我需要这些测试更通用。。。

这些测试背后的想法是,它们将在部署一段软件后使用。正在部署的软件将在IIS中设置一个站点,此站点将绑定到一个端口,该端口将根据当时可用的端口自动分配。我需要我的测试知道网站将在哪个端口上运行,否则它可能会测试错误的网站。我能够通过使用我正在使用的部署工具的返回值来识别它正在运行的端口。

因此,我的问题是:是否可以将一个参数(例如网站端口号)传递给nunit控制台,以便我已经编译的Selenium测试使用?

我能想到的唯一其他解决方案是在部署后构建测试。我希望避免这种情况,因为该软件已经经历了构建阶段,而再次构建对我来说似乎很混乱,尤其是如果我们的构建服务器(Bamboo)由于是部署任务中的一些自定义脚本而失去了构建过程的可见性。

提前谢谢。

使用一个变量执行NUnit测试用例

您可以使用环境变量。

在硒测试中,你可以用读取

var port = System.Environment.GetEnvironmentVariable("SITE_PORT");

您可以从不同的来源进行设置,例如批处理脚本或提示:

set SITE_PORT=<result of command>

AFAIK在当前版本的NUnit中无法做到这一点。在您的情况下,一个可能的解决方案可以是使用配置文件(我有时会使用它)。如果您知道测试在哪个端口上运行,您可以将该信息保存到配置文件中,并从中获取数据(使用ConfigurationManager):url或您需要的其他地址。您不会在更改测试上花费太多时间(您几乎不需要这样做,只需添加从配置文件中获取url的方法并将其粘贴到正确的位置即可=)。