2017-03-16 58 views
0

我使用硒(c#与Nunit)进行测试。 我为我的网站提供一些xml文件(包含凭证和其他输入)。虽然使用Visual Studio基于云的负载测试,它抛出文件不细异常时,它可以提供这些XML文件中的[TestInitialize]方法当采购数据文件时,基于云端的负载测试失败

这是我如何在源内部测试初始化​​

InputTestData = 新TESTDATA(系统。 IO.Path.Combine(TestContext.CurrentContext.TestDirectory + @“\ TestData”)); PagesInformation = new Pages(System.IO.Path.Combine(TestContext.CurrentContext.TestDirectory + @“\ PageDictionaries \ SUT_Pages”));

+0

您需要部署文件。他们需要部署到云计算机上可用的位置。请[编辑]问题以显示xml文件的文件路径以及在'TestInitialize'方法中读取它们的方法。 – AdrianHHH

+0

什么是AppDomain.CurrentDomain.BaseDirectory?它在本地计算机上扩展到什么程度?它在云计算机上扩展到什么程度?你做了什么来使云计算机上的AppDomain.CurrentDomain.BaseDirectory中的文件可用? – AdrianHHH

+0

抱歉,代码已修改。 –

回答

1

由Visual Studio Team Services运行的负载测试(即Microsoft Azure云)在我们几乎无法控制的计算机上运行。它们在微软用户帐户下以这些用户的权限运行。所有测试套件和相关文件都必须包含在从测试开发计算机传输到云端的软件包中。这通常意味着一切都必须是Visual Studio解决方案的一部分。包含测试数据的文件必须将其Copy to output directory设置为其中一个Copy ...值。这些文件将在上下文参数命名的其中一个目录中找到,其名称中包含$...Directory...$...Dir...。其中一个目录名称也可以在数据源的Connection string属性中看到,其中显示为|DataDirectory|\filename.csv

问题和评论显示数据文件预计在C:\TFS\Product\Source\的子目录中。云测试运行我似乎已将所有测试文件部署到目录中,例如d:\0\td\c3fd4\TestRun。我期望权限被设置为除了d:\...\TestRun以外的目录不能被测试套件写入;以防止恶意测试套件破坏计算机。

问题的解决方案是将测试数据文件部署到将被复制到运行测试的计算机的目录中。