2017-08-15 64 views
2

因此,我在多个独立的VS解决方案中有多个硒测试项目,它们都具有相同的Setup()方法,这些方法在运行场景之前执行以及所有具有相同TearDown()方法。目前,如果这些方法需要进行更改,则必须单独更新,以便集中处理这些方法以用于所有测试项目/解决方案。跨多个硒项目共享设置和拆卸方法

我比较新,所以提前道歉,但有没有人有这方面的经验,我可以采取的方法的建议?它甚至有可能吗?我的测试目前没有并行运行,所以这是我需要查看的东西?

+0

是否有某些原因,您不能仅仅为setup和teardown创建一个函数,然后从'Setup()'和'TearDown()'调用它们?这样一切都集中在这两个功能。 – JeffC

+0

嗨JeffC。他们在各个项目中都是这样设置的,但不幸的是,目前,每个测试项目都在自己的解决方案中,并且是我试图实现的跨项目和解决方案共享这两个功能。那有意义吗? –

回答

-1

长话短说 - 您需要创建一个元框架。

概念元框架提供了一种解决问题的方法,即将多件作为较大自动化策略的一部分进行自动化。测试人员定义了独立的实用程序类,它可以与任何自动化工具一起使用,也可以在不同的自动化项目之间重复使用。该框架提供了一个抽象层,允许执行单独的自动化部分,并以标准化方式报告结果。

我有一个post on the topic,所以随时采取您需要的形式那里。

既然您已经标记了VisualStudio,我将首先分享我的团队用于跨测试项目共享通用功能的方法。你需要的是一个私人的Nuget服务器。每个团队根据它提供的服务编译和支持一个Nuget包。例如Selenium代码,API调用等。

接下来,可能更接近您的案例解决方案将利用git submodules并在您的项目之间共享测试harness engine

这两种方法都将受益于共享夹具结构等Fixture Setup Patterns

+0

这似乎过于复杂,以解决这样一个简单的问题。为什么你需要一个私人的NuGet服务器等来做到这一点? – JeffC

+0

让您的代码保密。你如何保护你的软件包,你想跨项目分享?这只是一个建议(更多的公司环境导向,我同意),这是我的团队在当时的工作。其他选项也是有效的,@JeffC如果你有更好的选择 - 请分享并帮助解决问题。 – ekostadinov

+0

嗨ekostadinov。我会研究你提供的信息并让你知道。我知道我们现阶段无法拥有私人的Nuget服务器,但我可能会以某种方式利用当前的基础设施。 –

0

如何更改代码为 [OneTimeSetUp]和[OneTimeTearDown]?

在我看来,你应该设置创建一个类包括安装和拆卸,然后在侑测试添加设置这样的公共类HREmployeeList:设置

希望帮助或不能只检查这个链接如下 http://toolsqa.com/selenium-webdriver/c-sharp/how-to-write-selenium-test-using-nunit-framework/

+0

嗨Yuninda。我会仔细查看一下,看看我是否错过了一些东西,然后回过头来看看它是如何发生的。不幸的是,测试项目在单独的解决方案中,并且如何在所有项目/解决方案中共享这些设置和拆卸功能。这可能只是该方法需要彻底改变,但我想在进行这样的任务之前确定地知道。 –

0

你可以做的一件事是创建一个包含setup和teardown函数的新项目,然后在所有其他项目中包含编译后的dll。如果你需要对setup/teardown进行更改,你需要进行修改并编译一个新的dll,并将代码更改传递给所有其他项目。

+0

这听起来不错@JeffC。我仍然在尝试将这些东西用于其他工作,但我会尽快更新。谢谢。 –