19

テスト構成のセットアップについては、SBT のドキュメントの指示に従いました。Test、IntegrationTest、および AcceptanceTest の 3 つのテスト構成があります。したがって、私の src ディレクトリは次のようになります。

  • ソース/
    • 受け入れ/
      • スカラ/
    • それ/
      • スカラ/
    • テスト/
      • スカラ/

私の質問は、これらの構成間でクラスを共有できるように SBT を構成するにはどうすればよいですか? 例: データベースのセットアップと破棄を簡素化するために、"it" 構成にクラスがあります。「受け入れ」構成での受け入れテストの 1 つで、このクラスを利用できます。その「it」クラスを「受け入れ」のテストで使用できるようにするにはどうすればよいですか

よろしくお願いします。

4

4 に答える 4

13

構成は、別の構成を拡張して、その構成の依存関係とクラスを使用できます。たとえば、カスタム テスト構成セクションには、カスタム構成の次の定義が表示されます。

lazy val FunTest = config("fun") extend(Test)

このextend部分は、コンパイルされた通常のテスト ソースがソースのクラスパスにあることを意味しfunます。あなたの場合、構成を宣言してacceptance構成を拡張しitます。

lazy val AcceptanceTest = config("acceptance") extend(IntegrationTest)
于 2012-11-16T15:24:32.520 に答える
2

アプローチはここに文書化されています: http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing#additional-test-configurations-with-shared-sources

于 2012-11-14T21:53:09.070 に答える
1

SBT uses the Maven default directory layout.

It will recognize folders unders src/test/scala to compile along with src/main/scala.

So, if you move the other folders under src/test/scala SBT will compile them and you can share code between them. e.g.:

└── scala
    ├── acceptance
    │   └── scala
    │       └── Acceptance.scala
    ├── it
    │   └── scala
    │       └── IT.scala
    └── Test.scala

Running sbt test will compile all three files in the directory. So, with this Acceptance refer to and can create a new IT class for example.

于 2012-11-14T20:25:37.610 に答える