Php 在将数据放入@dataProvider之前,调用另一个方法获取数据

Php 在将数据放入@dataProvider之前,调用另一个方法获取数据,php,laravel,function,phpunit,dataprovider,Php,Laravel,Function,Phpunit,Dataprovider,更新:我找到了原因@dataProvider将在setUp或setUpBeforeClass之前执行。所以我所有的变量在@dataProvider完成之前都不存在。 我仍然在寻找解决方案,我真的不认为覆盖PHPUnit是个好主意 更新:如果你有和我一样的问题。您可能需要尝试使用$this->refreshApplication() 在调用setUpBeforeClass()静态方法和第一次调用setUp()方法之前,将执行所有数据提供程序。因此,您无法访问从数据提供程序中创建的任何变量。这是PH

更新:我找到了原因@dataProvider将在setUp或setUpBeforeClass之前执行。所以我所有的变量在@dataProvider完成之前都不存在。 我仍然在寻找解决方案,我真的不认为覆盖PHPUnit是个好主意

更新:如果你有和我一样的问题。您可能需要尝试使用$this->refreshApplication()

在调用setUpBeforeClass()静态方法和第一次调用setUp()方法之前,将执行所有数据提供程序。因此,您无法访问从数据提供程序中创建的任何变量。这是PHPUnit能够计算测试总数所必需的

我正在为我公司的项目写一个测试用例。 所以序列是这样的

  • 用户登录
  • 获取根路径。(这样做很简单,可以获取数据并在会话中保留一些数据)
  • $this->get('/')

  • 访问特定文件夹并读取所有文件(这些文件具有相同的扩展名)。读取每个文件的内容,并使用内容发出POST请求以接收$response。 然后使用$reponse,我假设在将它们传递给数据提供者之前,使用将其保存在一个数组中
  • 问题:无法在@dataProvider内调用方法。 例如:

    $this->get('/')//失败了@dataProvider在没有测试的情况下退出 执行

    $this->user_login_和_request_root_path()//失败了@dataProvider在未执行任何测试的情况下退出

    我可以理解@dataProvider是如何工作的,但是当我需要一些从另一个方法返回的数据时,在传递给它之前设置数据是相当复杂的

    那么我的问题是,在PHPUnit中将数据传递给@dataProvider之前,如何(从其他函数)获取数据? 非常感谢