我可以使用变量在 FileStream 中设置路径吗?

我在 Selenium Webdriver 中有一个使用 C# 的测试脚本,我在其中从.txt外部文件读取数据。


脚本上的路径是固定的,表示我电脑上的一个文件夹。但是将来其他人将在其他计算机上运行此脚本,他们将不得不直接在脚本上手动调整路径。


是否可以将路径设置C:\Users\...\myData.txt为一种变量,我的意思是,在脚本正文中不是永久的?


这是脚本的一部分:


using System;

using NUnit.Framework;

using OpenQA.Selenium;

using OpenQA.Selenium.Chrome;

using System.IO;

using System.Collections;

using System.Text;


namespace SeleniumTests

{

    [TestFixture]

    public class Principal

    {

        IWebDriver driver = null;


        [SetUp]

        public void SetUp()

        {

            ChromeOptions options = new ChromeOptions();

            options.AddArguments("--disable-infobars");

            options.AddArguments("start-maximized");

            driver = new ChromeDriver(options);

        }


        public class DataTXT

        {

            public string example1{ get; set; }

            public string example2{ get; set; }

            public string example3{ get; set; }

            public string example4{ get; set; }

        }


        public static IEnumerable DataTXT

        {

            get

            {

                string linha;

                using (FileStream readFile =

                new FileStream(@"C:\Users\...\myData.txt", FileMode.Open, FileAccess.Read))

                {

                    var reader = new StreamReader(readFile, Encoding.GetEncoding("iso-8859-1"));


                    while ((line = reader.ReadLine()) != null)

                    {

                        var column = line.Split(';');

                        yield return new DataTXT

                        {

                            example1 = column[0],

                            example2 = column[1],

                            example3 = column[2],

                            example4 = column[3]

                        };

                    }

                    reader.Close();

                    readFile.Close();

                }

            }

        }



回首忆惘然
浏览 228回答 3
3回答

哔哔one

我可能有点误解你的问题,因为我在这里有点新。但是,如果您只是想要一个不是静态定义的并且可以由用户更改的路径变量;您可以使用配置文件来定义它并改为指向配置。(或 ConfigurationManager MSDN-ConfigManager)

慕妹3146593

有多种方法可以做到这一点。您可以在项目中创建路径并知道它相对于 \bin 的位置。我看到您正在使用 NUnit。NUnitTestContext.CurrentContext.TestDirectory将返回测试 dll 的路径。如果您将 txt 文件添加到您的解决方案中并通过构建后事件将其与 dll 一起复制,它将始终位于TestDirectory.
打开App,查看更多内容
随时随地看视频慕课网APP