基本上我试图完成什么在C#的NUnit是非常简单的,但使用Java测试框架。如何将参数值直接传递给TestNG,JUnit或其他框架方法?
我希望在Java中实现看起来像这样在C#的NUnit的是什么:
[Test]
[TestCase(ProcessTypes.A, "a", false, true, false), Category("Smoke")]
[TestCase(ProcessTypes.A, "A", false, false, true), Category("Functional")]
[TestCase(ProcessTypes.A, "*", false, false, false), Category("Functional")]
public void ProcessIsResponding(ProcessTypes ProcessType, string password, bool lengthPass, bool lowercasePass, bool uppercasePass) {
...
// perform test using parameters
...
}
在这种情况下,我写一个测试方法,并使用注释来定义的参数值,和值只需要匹配测试方法参数。然后为每个TestCase注释调用它,每次使用一组不同的参数值。这比使用参数名称注释测试更加实用,并将值存储在外部XML文件中。当您有大量测试时,那么这将非常麻烦。
看来TestNG是最有希望的框架,但它具有整个“XML文件中的参数值”体系结构,这是非常糟糕的。
如果其他人会有这种结构,我愿意投入巫婆框架的努力。
这可以通过任何其他Java测试框架来完成吗?
哦,是的,我的观点是我希望参数*值*在注释中,而不是单独像TestNG这样的文件显然需要。在你发布的例子中,例如,我必须将参数值放在testng.xml中,与NUnit采用的方法相比,这非常麻烦。我很好奇这些框架是否可以以类似的方式工作,参数值在测试注释中,而不是在外部。 –
我现在明白了。如果使用DataProvider,则可以在注释中使用参数。 http://testng.org/doc/documentation-main.html#parameters-dataproviders,但最常见的用法是通过属性文件,因为那时我们可以有一个环境驱动的测试。他们不是真正的注释,但你也可以使用@optional。例如:'public void testNonExistentParameter(@Optional(“mysql”)String db){...}' –