我正在做的事情:使用 Jenkins 针对各种环境(开发/登台/生产)运行相同的测试套件和测试用例。我将 WebDriver 与 Java 实现和 TestNG 一起使用。
我想要做什么:根据环境有选择地禁用一些测试,但不是整个测试套件的运行。我不想在环境之间维护单独的代码库,而是想知道一种实现此目的的方法。
最初的想法:我正在考虑在 Jenkins 中为每个环境中的每个作业设置一个系统属性,每个测试装饰器都必须提取这条信息以确定是否应该运行它。我认为这很笨拙,我不知道该怎么做,而且我不确定这是否是正确的方法。
有人可以告诉我实现这一目标的最佳方法吗?我希望这不是最好的方法。
谢谢
乔
最佳答案
你看过 TestNG 监听器吗?
您可以在测试套件运行之前但在要运行的测试已被识别之后编写一个监听器,以迭代测试列表并删除您不想运行的测试。 因为这是程序化的,所以你可以编写任何 java 来实现你想要的。
此外,您可以创建注释来识别哪些测试在哪个环境中运行;例如,使用 @RunInEnvironment({"UAT", INT"}); 之类的内容注释这些测试;然后您的监听器可以使用这些注释从列表中删除不需要的测试。
关于java - 有选择地禁用每个环境的自动化案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18412387/