2017-07-07 5 views
2

Scalatestを使用してテストしたいScalaプログラム(Mavenを使用して構築)があります。scalatest - 以前のバージョンのScalaでコンパイルされたマクロを展開できません

error: can't expand macros compiled by previous versions of Scala 
     assert(true) 
      ^
:我々は、我々のテストは、マクロ assert()で何かを実行すると、我々は次のエラーを取得するのScala 2.11.8とScalatest 3.0.1(私たちは無駄に3.0.3を試してみた)

を実行しています

これはtrueを指していますが、問題はassert()に記載されています。私たちのPOMはScalatestのための次の依存関係を持っています

<dependency> 
    <groupId>org.scalatest</groupId> 
    <artifactId>scalatest_2.11</artifactId> 
    <version>3.0.1</version> 
    <scope>test</scope> 
</dependency> 

我々が実行しようとしているコードは次のとおりです。

import org.scalatest.{FlatSpec, _} 
import org.junit.runner.RunWith 
import org.scalatest.junit.JUnitRunner 


@RunWith(classOf[JUnitRunner]) 
class Testing extends FlatSpec { 
    //test 
    var number = 0; 
    "An empty Set" should "have size 0" in { 
    assert(true) 

    } 
} 

ロトの人々のは、これはScalaの2.11を使用したが2.10の依存関係を含めの問題であると言いますしかし、私たちは2.11を使用しています。どんな助けでも大歓迎です。 Scala 2.10を使って試してみましたが、うまくいきました。

+0

間違ったScalaバージョンのために_something_がコンパイルされているというメッセージが表示されています。完全なPOMを含めることができます。プロパティを使う代わりに明示的な '_2.11'を持たせることは、スカラのバージョンを切り替える際に誤って' _2.10'または '_2.12'を残す可能性が高い反パターンであることに注意してください。 –

+0

ええ、実際には私はあなたがそれが何であるかを知っていたので、私が記入したプロパティを使用していた。私は以下の答えを試してみて、別の依存関係がそれを使用しているかどうかを調べるつもりです。残念なことに、私は仕事用のコンピュータを週末に仕事場に残しました。 2.10への参照はありませんが、POMに2.12があるかもしれません。 – skylerl

答えて

2

mvn dependency:treeを実行し、どの依存関係に_2.10が含まれているかを確認します。 0122.を使用して_2.11が含まれ、_2.10 が除外されていることを確認してください。

+0

これは私がそれを理解するのを助けました。私たちの依存関係の1つに、scalatest_2.10を含む2.10のjarファイルが含まれていたことが分かります。どうもありがとうございます! – skylerl

+0

助けてくれてうれしいです。 – JVS

関連する問題