问题标签 [teardown]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python unittest:tearDownClass 删除文件
我有 unittests 类,我有测试方法。现在在这些方法中,我临时创建一个文件来与模块内的静态文件进行比较。运行测试后,我想删除该文件
现在在setUp
方法中,我定义了属性:
self.dir_path
它显示了文件目录的路径。所以要获取文件,我可以简单地写:
现在要删除它,我会执行以下操作:
但是tearDownClass
是一个类方法,它不会看到self.dir_path
. 如果我使用 insidetearDown
方法,那么它将在每次测试后尝试删除该文件(该文件仅在其中一种测试方法中创建),这将失败。
那么这种情况下的最佳选择是什么?我应该在创建它的测试方法中删除该文件吗?我想利用旨在做到这一点的拆解方法功能,但似乎我做不到。
或者也许有更好的方法来临时创建一个文件,然后在测试后将其删除?
笔记。我需要创建该文件,因为我正在测试以 excel 格式生成的报告,并且文件是使用一个库生成的,但生成的内容会与另一个库进行检查(xlwt
用于创建,xlrd
用于将结果与静态 excel 文件进行比较)。
installation - googletest 全局环境
我正在尝试使用 ::testing::Environment 设置全局环境。我有 28 个测试,它们都创建了 28 个客户端和 28 个服务器,我只想拥有一个客户端和一个服务器。我不知道是否应该将 ::Environment 或 ::Test 与共享资源一起使用。
unit-testing - 如果派生类的 setUpClass 失败,可靠地杀死在 setUpClass 中启动的 phantomjs
我写了一个SeleniumTestCase
类,它在其中启动 PhantomJSsetUpClass
并在它的tearDownClass
. 但是,如果派生类setUpClass
引发错误,PhantomJS 进程将挂起,因为SeleniumTestCase.tearDownClass
没有被调用。
输出(注意“Tearing Down”没有被打印出来)
setUpClass
套件失败后如何杀死 PhantomJS ?我知道我可以切换到使用setUp
and addCleanup
,但我想避免在每次测试之前重新启动 PhantomJS(并使用它重新登录我的应用程序)。
entity-framework - 使用实体框架进行数据拆解
我在寻求一些建议。我正在开发一个使用实体框架作为 Orm 的项目。我们始终使用代码优先的方法。我们也在使用行为驱动开发,并使用 specflow 和 selenium 创建了一组自动化 Web 测试。我需要能够从测试期间创建的数据库中删除所有数据。所以理想情况下,在我创建的在测试后执行的测试挂钩中,我想删除在测试期间添加的所有数据。
理想情况下,我想保持代码优先的方法,但我愿意接受建议。我想看看其他人如何提供解决方案并从他们那里获得一些建议。
c# - 如何在多个测试执行之间返回系统初始状态
我正在使用 Nunit,我想知道是否有办法返回到真正的初始化状态,包括已经构建的所有单例。
目前我已经通过向单例添加重置方法的解决方法解决了它,我不喜欢它,因为现在我的生产代码不干净。
据我了解,单音将被初始化一次并保存在所有测试执行期间可用的堆中。
有没有办法在 Nunit 测试装置的拆解功能处清理堆?
我已经设法使用以下(丑陋的)代码示例重现了该问题,您可以看到,当两个测试一个接一个地执行时,第二个测试失败了......
c# - OpenQA.Selenium.WebDriverException:无法使用 Selenium WebDriver 和 C# 执行单元测试在 localhost 上启动驱动程序服务
我正在学习Selenium/Webdriver
NUnit
测试并在执行测试时遇到问题:
运行测试时,出现异常:
OpenQA.Selenium.WebDriverException:无法在 localhost 上启动驱动程序服务 TearDown:System.NUllReferenceException:对象引用未设置为对象的实例
我不知道如何解决它。
但是,以下方法有效:
在这里,我使用与webdriver
失败示例相同的方法来启动。唯一的区别是失败的例子正在使用NUnit.Framework
,而正确的例子正在使用Microsoft.VisualStudio.TestTools.UnitTesting
我不确定第二种方法有什么问题?
testing - Robotframework:杀死进程
我尝试为 GUI 应用程序编写测试 throw Winium + Selenium 但主要一点,我无法完成开始抛出测试的过程。
我认为这个问题是winium,因为我用简单的calc.exe尝试这种方式,它运行良好。
如何杀死 GUI 应用程序?因为抛出终止进程它不工作(
阿尔乔姆
installation - PHPUnit 中的 setup() 和 Codeception 中的 _before 有什么区别
我正在学习 Codeception,我想知道什么时候应该使用 setUp() 或 tearDown(),什么时候应该使用 _before() 或 _after()。我看不出有什么区别。这两种方法都是在我的测试文件中的单个测试之前或之后运行的?谢谢,
unit-testing - Elixir / ExUnit:将上下文从测试用例传递到拆卸/清理方法(on_exit)可能吗?
问题
我想测试一个与主机系统交互并且具有副作用的方法的 Elixir 模块。对于这个问题并保持简短,假设它是创建几个目录。这些目录当然应该在测试运行后删除,如果测试(很长)由于任何原因(错误的模块代码、错误的测试代码等)失败。
我想知道如何最好/最优雅地解决这个清理步骤。我查看了ExUnit.Callbacks.on_exit/2的文档,但它的示例仅用于设置和简单的拆卸(不涉及传递状态)。我也在网上搜索过,但没有发现任何有用的东西,所以可能是我的想法本身不好 - 我也愿意接受重新定义问题的建议。
例子
可能的解决方案?
我现在想cleanup/1
在每次测试后添加一个要删除的目录列表的调用。以下想法是我尝试过的事情:
- 在每个测试结束时直接调用该函数:适用于简单的情况,但如果测试用例无限循环,它将被杀死并且不再进行清理。
- 在每个测试中使用更新的上下文进行调用
on_exit(fn -> cleanup(context) end)
:这似乎可行,但我无法确定是否推荐它,以及在测试中放置调用的位置(开始/结束)是否有所不同。 - 调用函数:文档执行
on_exit(fn -> cleanup(context) end)
此setup context
操作,但我不知道如何将任何新状态/上下文传递给它。只有在设置函数中已经完全定义了所有上下文时,它似乎才有用。
也许我也多虑了这个问题......我只是在不完整的清理和导致无休止的递归中遇到了一些糟糕的调试经验(这应该被我的代码捕获,但还没有),所以我只想确保我做到了正确的事情并以正确的方式学习。除了这些测试之外,到目前为止,Elixir 是一次非常愉快且完美的体验!
googletest - 如何在 Google Test TearDown() 中检查测试是否失败?
在每个“基于文件的集成”测试结束时,我想清除关联文件的临时文件夹。
如果测试失败,我想将文件保留在那里,以便查看意外输出。
Google Test TearDown 中有没有办法检查测试是否失败?