运行 只有来自 SBT 的具有构造函数参数的特定规范
Running only a specific Spec from SBT that has constructor parameters
我有一个 specs2 Specification
来针对多个数据库测试数据库相关的东西。因此,它通过其构造函数参数获取要测试的数据库配置。它是从一个更大的规范中实例化和使用的,该规范针对所有数据库进行测试。
现在我只想在 sbt 中针对 MSSQL 进行测试,但是如果我使用 test-only f.q.d.n.MySpec(DatabaseConfig.MSSQL)
则没有测试 运行 因为它不匹配任何测试。如果我关闭该参数,它会尝试实例化 class 并正确地失败,因为它无法在没有参数的情况下实例化它。
有没有办法只 运行 一个特定的规范和一组来自 sbt 的特定的构造函数参数而不改变调用它的更大的规范?
当您使用 test:only
时,您需要传递匹配 class 名称的表达式(如果需要,使用 *
)。然后 specs2 将尝试实例化您的构造函数参数,如果它们有一个带 0 个参数的构造函数。如果你传递一个对象,情况就不是这样了。您可以尝试使用 0 参数构造函数代替 have class 吗?
我有一个 specs2 Specification
来针对多个数据库测试数据库相关的东西。因此,它通过其构造函数参数获取要测试的数据库配置。它是从一个更大的规范中实例化和使用的,该规范针对所有数据库进行测试。
现在我只想在 sbt 中针对 MSSQL 进行测试,但是如果我使用 test-only f.q.d.n.MySpec(DatabaseConfig.MSSQL)
则没有测试 运行 因为它不匹配任何测试。如果我关闭该参数,它会尝试实例化 class 并正确地失败,因为它无法在没有参数的情况下实例化它。
有没有办法只 运行 一个特定的规范和一组来自 sbt 的特定的构造函数参数而不改变调用它的更大的规范?
当您使用 test:only
时,您需要传递匹配 class 名称的表达式(如果需要,使用 *
)。然后 specs2 将尝试实例化您的构造函数参数,如果它们有一个带 0 个参数的构造函数。如果你传递一个对象,情况就不是这样了。您可以尝试使用 0 参数构造函数代替 have class 吗?