播放 2.3.x:多项目,禁用 BoneCP
Play 2.3.x: Multiproject, disable BoneCP
我有一个包含一些子项目的 Play
项目。子项目之一需要 JDBC
,所以 BoneCP
(它访问了 MySQL
数据库)。
另一方面,根项目根本不需要 JDBC
。
我的问题是:
JDBC
在子项目的 build.sbt
中声明。当我 运行 所有测试时,在本例中是根项目测试, BoneCP
被初始化,即使在子项目中只是需要。它在测试过程中给我带来了一些问题:
Configuration error[Cannot connect to database [default]] (Configuration.scala:94)
我可以指定 Play
仅对子项目使用 JDBC
吗?或者我可以在根项目中禁用 JDBC
或 BoneCP
吗?
感谢您的回答。
对于单元测试,我会说创建一个提供通用 FakeApplication 的测试实用程序对象。然后你可以在你的单元测试中重新使用这个 FakeApp。 FakeApplication 的构造函数参数之一是 withoutPlugins,您可以利用它在单元测试期间关闭插件。
例如,在当前的 Play 应用程序中,我们使用 ReactiveMongo,但不希望在单元测试中使用它。
object MockMyApp extends OurBaseSpec {
val withoutPlugins = Seq(classOf[ReactiveMongoPlugin].getName)
val appWithoutIntegrations = FakeApplication(withoutPlugins = withoutPlugins)
}
然后我们在创建用于单元测试的新应用程序时引用此 MockMyApp.appWithoutIntegrations。在创建 FakeApp 时,您还可以在其他选项中指定其他配置。
从几个链接中,我认为您可能正在寻找在创建 FakeApp 时要设置的其他配置:
dbplugin=disabled
Answer where above configuration was reason dbplugin wasn't working
Instructions for configuring alternate connection pool look at step#2
val disabledDbConfig = Map("dbplugin"->"disabled")
val appWithoutIntegrations = FakeApplication(additionalConfiguration = disabledDbConfig)
终于搞定了!
val withoutPlugins = Seq(classOf[ReactiveMongoPlugin].getName)
非常适合禁用 ReactiveMongo 插件。
对于主要问题:
additionalConfiguration = Map("dbplugin" -> "disabled", "evolutionplugin" -> "disabled")
在测试期间根本没有 JDBC
。非常感谢巴里!
我有一个包含一些子项目的 Play
项目。子项目之一需要 JDBC
,所以 BoneCP
(它访问了 MySQL
数据库)。
另一方面,根项目根本不需要 JDBC
。
我的问题是:
JDBC
在子项目的 build.sbt
中声明。当我 运行 所有测试时,在本例中是根项目测试, BoneCP
被初始化,即使在子项目中只是需要。它在测试过程中给我带来了一些问题:
Configuration error[Cannot connect to database [default]] (Configuration.scala:94)
我可以指定 Play
仅对子项目使用 JDBC
吗?或者我可以在根项目中禁用 JDBC
或 BoneCP
吗?
感谢您的回答。
对于单元测试,我会说创建一个提供通用 FakeApplication 的测试实用程序对象。然后你可以在你的单元测试中重新使用这个 FakeApp。 FakeApplication 的构造函数参数之一是 withoutPlugins,您可以利用它在单元测试期间关闭插件。
例如,在当前的 Play 应用程序中,我们使用 ReactiveMongo,但不希望在单元测试中使用它。
object MockMyApp extends OurBaseSpec {
val withoutPlugins = Seq(classOf[ReactiveMongoPlugin].getName)
val appWithoutIntegrations = FakeApplication(withoutPlugins = withoutPlugins)
}
然后我们在创建用于单元测试的新应用程序时引用此 MockMyApp.appWithoutIntegrations。在创建 FakeApp 时,您还可以在其他选项中指定其他配置。
从几个链接中,我认为您可能正在寻找在创建 FakeApp 时要设置的其他配置:
dbplugin=disabled
Answer where above configuration was reason dbplugin wasn't working
Instructions for configuring alternate connection pool look at step#2
val disabledDbConfig = Map("dbplugin"->"disabled")
val appWithoutIntegrations = FakeApplication(additionalConfiguration = disabledDbConfig)
终于搞定了!
val withoutPlugins = Seq(classOf[ReactiveMongoPlugin].getName)
非常适合禁用 ReactiveMongo 插件。
对于主要问题:
additionalConfiguration = Map("dbplugin" -> "disabled", "evolutionplugin" -> "disabled")
在测试期间根本没有 JDBC
。非常感谢巴里!