我正在使用 MSTest 项目来自动化我的系统。测试项目工作正常。但是我需要在我的生产中运行测试项目而不安装 Visual Studio。所以我正在使用 VSTest.Console.exe 命令行。
我的登录方法如下
[TestMethod]
[TestCategory("SmokeTests")]
public void Can_login_with_Empty_UserName()
{
Login(TestContext.Properties["UserName"].ToString(), TestContext.Properties["Password"].ToString());
}
和我的 vstest.console 命令如下
vstest.console MyPath\SmokeTests.dll /Tests:Login /Settings: PathToSettingFile\tests.runsettings
当我运行此命令时,它会给我“System.NullReferenceException:对象引用未设置为对象的实例。” 错误
但是如果我改变我的方法如下
[TestMethod]
[TestCategory("SmokeTests")]
public void Can_login_with_Empty_UserName()
{
Login("Admin", "1234");
}
上面的代码将正常工作。
所以问题是
TestContext.Properties["UserName"].ToString()
当我通过 Visual Studio 运行测试用例时,没有问题。知道为什么 /Settings: PathToSettingFile\tests.runsettings 无法加载通过 vstest.console 命令运行的 runsettings 文件。谢谢你。