我目前正在为我正在使用的公司编写一些Python(使用3.5版本)软件的测试,但我遇到了一个问题,我目前认为这是因为全局变量< / em>如果我可以称之为。
软件架构非常模块化,因此为了测试单个模块,创建了一个单独的测试文件(可能称为test_somemodule_py
),其中包含一个扩展unittest.TestCase
的类。
注意我在这里称之为modules
的不是真正的Python模块,而是应用程序模块
所有测试都是通过包含自定义加载器的单个转轮脚本触发的:
def load_tests(loader, tests, pattern):
suite = unittest.TestSuite()
for all_tests in loader.discover('tests', pattern='test_*.py'):
for test_suite in all_tests:
suite.addTests(test_suite)
return suite
在实际运行期间,所有单个模块都保存(包含)在类似主包的包装器中,基本上是单例。
现在我的问题是每当我将测试作为单个文件运行(将加载程序从test_*.py
更改为test_somemodule.py
)时,所有测试都会成功,但是如果它们一起运行(保留{{{ 1}}模式),一些测试开始失败。
我很确定当我没有将主包装器实现为单例时,情况从未如此,但应用程序功能和体系结构确实需要这种方法。由于我怀疑只创建了一个实例,有人可以告诉我如何最好地解决这个问题吗?
我的理论是,如果有一种方法可以重置所有&#39;全局变量&#39;到初始状态,它会像魅力一样工作。或者可能存在某种隔离内存的方法,然后在测试超出范围时将其丢弃。
非常感谢提前。
答案 0 :(得分:1)
为什么不这样做?
textaAreaField.addEventListener('keypress', function(e) {
if(e.ctrlKey) {
this.value += "\n";
}
});