如何在设置 MSTest TestContext 之前执行代码
How to execute code before MSTest TestContext is set
对于我们的数据驱动测试,我们使用 Excel 文件作为数据源。
现在,因为 Excel 文件是二进制数据,我们对 git 感到很头疼(无法比较,文件被覆盖,并且由于实际上是不正确的测试数据而隐含了很多误报改了好几次)。
所以,为了克服这个问题,我认为我们可以使用 Google 驱动器来存储数据源,并且每次下载将要使用的 Excel 文件。
现在的问题是 TestContext
在我从 Google 驱动器下载数据源之前设置在 AssemblyInitialize
中,因此无法找到它。
是否有可能在与测试相同的程序集中确定数据源的下载?
我知道我可以创建一个新的解决方案,在执行测试程序集之前将其设置为构建任务,但是如果可能的话,我正在寻找一些简洁的东西。
编辑:
我尝试使用选项创建一个新的控制台应用程序项目,该项目将 运行 作为构建任务并在执行测试之前下载 Excel 文件。
但是,似乎由于 Excel 文件未添加到解决方案中,因此 Datasource
属性未选取它。
所以让它工作的唯一方法是创建一个新的控制台应用程序项目,该项目作为预构建任务添加到数据驱动测试项目中。
至少这是最初的方法,因为它导致我们的解决方案有额外的 1-2 分钟(取决于网络流量)。
所以我结束了在构建系统中创建一个新的构建任务来处理这个问题。
对于我们的数据驱动测试,我们使用 Excel 文件作为数据源。 现在,因为 Excel 文件是二进制数据,我们对 git 感到很头疼(无法比较,文件被覆盖,并且由于实际上是不正确的测试数据而隐含了很多误报改了好几次)。
所以,为了克服这个问题,我认为我们可以使用 Google 驱动器来存储数据源,并且每次下载将要使用的 Excel 文件。
现在的问题是 TestContext
在我从 Google 驱动器下载数据源之前设置在 AssemblyInitialize
中,因此无法找到它。
是否有可能在与测试相同的程序集中确定数据源的下载? 我知道我可以创建一个新的解决方案,在执行测试程序集之前将其设置为构建任务,但是如果可能的话,我正在寻找一些简洁的东西。
编辑: 我尝试使用选项创建一个新的控制台应用程序项目,该项目将 运行 作为构建任务并在执行测试之前下载 Excel 文件。
但是,似乎由于 Excel 文件未添加到解决方案中,因此 Datasource
属性未选取它。
所以让它工作的唯一方法是创建一个新的控制台应用程序项目,该项目作为预构建任务添加到数据驱动测试项目中。
至少这是最初的方法,因为它导致我们的解决方案有额外的 1-2 分钟(取决于网络流量)。
所以我结束了在构建系统中创建一个新的构建任务来处理这个问题。