python:使用原始输入修改文本文件,然后根据';它被写入.txt

python:使用原始输入修改文本文件,然后根据';它被写入.txt,python,python-2.7,python-unittest,Python,Python 2.7,Python Unittest,我试图在已经构建的测试结构周围添加终端用户输入包装器 看起来像: 回归文件夹: r_globals.py[带有存储变量的r_globals类] 测试用例1.py testcases2.py smoketest.py[运行unittest.TestSuite(r\u globals.tests\u to\u run)] 回归_runner.py** GLOBALS.txt** (**表示我添加的文件) 所有文件都导入r_globals,其中存储运行所需的信息(如selenium应该导航到哪个ip)

我试图在已经构建的测试结构周围添加终端用户输入包装器

看起来像:

回归文件夹:

r_globals.py[带有存储变量的r_globals类]

测试用例1.py

testcases2.py

smoketest.py[运行unittest.TestSuite(r\u globals.tests\u to\u run)]

回归_runner.py**

GLOBALS.txt**

(**表示我添加的文件)

所有文件都导入r_globals,其中存储运行所需的信息(如selenium应该导航到哪个ip)。 smoketest使用unittest运行r_globals中指定的测试用例

回归运行程序应该添加功能s/t用户输入要运行的测试列表(和其他配置)。然后回归运行程序调用smoketest,它应该运行输入指定的测试

因为所有文件都导入r_全局文件,所以我无法将用户输入的配置存储在其中-每次导入都将还原硬编码的值。因此,当前r_globals从globals.txt读取,回归运行程序会根据用户输入修改文本文件

但是,当前GLOBALS.txt仅在脚本完成后更新。 即:

  • GLOBALS.txt包含用于运行测试的“testcases1”
  • 运行回归运行程序,用户输入“testcases2”以运行测试
  • “testcases2”被写入GLOBALS.txt。使用关闭GLOBALS.txt file.close()文件
  • 回归运行程序调用smoketest,它从 r_globals,从globals.txt读取
  • “testcases1”正在运行
  • 脚本完成后,如果再次运行而未做任何更改,则运行“testcases2”
  • 我尝试过各种文件.close()、flush()、stdout.flush()等。尝试重新加载(r_globals)时,我得到了“重新加载参数必须是一个模块”

    可以提供代码片段,但代码很长,并且被分割成许多文件。我知道代码结构(使用一个伪“globals”文件/类)既不好也不符合python,但是重构以删除r_globals需要修改>20个文件中的>10个变量


    我可以让r_globals(以及因此而来的smoketest.py和testcases.py)从同一实例中的.txt文件中提取修改后的值吗

    我可能遗漏了一些东西,但是您不能在
    r\u globals.py
    中添加setter和getter,让这两个函数成为直接读取和写入文件的唯一函数吗?然后您可以像以前一样导入它,并从所有其他脚本调用这两个函数