Skip to content

Commit 96d1b39

Browse files
authored
Fix Mill export for projects with just the test scope (#3046)
* Fix Mill export for projects with just the test scope * Increase integration test timeouts to 300s
1 parent daa8b27 commit 96d1b39

File tree

4 files changed

+34
-3
lines changed

4 files changed

+34
-3
lines changed

modules/cli/src/main/scala/scala/cli/exportCmd/MillProjectDescriptor.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ final case class MillProjectDescriptor(
3333

3434
val pureJava = !options.scalaOptions.addScalaLibrary.contains(true) &&
3535
!options.scalaOptions.addScalaCompiler.contains(true) &&
36-
sources.paths.forall(_._1.last.endsWith(".java")) &&
37-
sources.inMemory.forall(_.generatedRelPath.last.endsWith(".java")) &&
36+
sources.hasJava &&
37+
!sources.hasScala &&
3838
options.classPathOptions.allExtraDependencies.toSeq
3939
.forall(_.value.nameAttributes == NoAttributes)
4040

modules/integration/src/test/scala/scala/cli/integration/ExportCommonTestDefinitions.scala

+16
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,18 @@ trait ExportCommonTestDefinitions { _: ScalaCliSuite & TestScalaVersionArgs =>
9696
}
9797
}
9898

99+
def justTestScope(): Unit = {
100+
val expectedMessage = "exporting just the test scope actually works!"
101+
prepareTestInputs(ExportTestProjects.justTestScope(expectedMessage))
102+
.fromRoot { root =>
103+
exportCommand(".").call(cwd = root)
104+
val testRes = buildToolCommand(root, runTestsArgs*)
105+
.call(cwd = root / outputDir)
106+
val testOutput = testRes.out.text()
107+
expect(testOutput.contains(expectedMessage))
108+
}
109+
}
110+
99111
private val scalaVersionsInDir: Seq[String] = Seq("2.12", "2.13", "2", "3", "3.lts")
100112

101113
if (runExportTests) {
@@ -123,5 +135,9 @@ trait ExportCommonTestDefinitions { _: ScalaCliSuite & TestScalaVersionArgs =>
123135
}
124136
}
125137

138+
test("just test scope") {
139+
justTestScope()
140+
}
141+
126142
}
127143
}

modules/integration/src/test/scala/scala/cli/integration/ExportTestProjects.scala

+15
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package scala.cli.integration
22

33
import com.eed3si9n.expecty.Expecty.expect
44

5+
import scala.cli.integration.Constants.munitVersion
6+
57
object ExportTestProjects {
68
def jvmTest(scalaVersion: String): TestInputs = {
79

@@ -324,4 +326,17 @@ object ExportTestProjects {
324326
|}
325327
|""".stripMargin
326328
)
329+
330+
def justTestScope(msg: String): TestInputs = TestInputs(
331+
os.rel / "MyTests.test.scala" ->
332+
s"""//> using dep org.scalameta::munit::$munitVersion
333+
|
334+
|class MyTests extends munit.FunSuite {
335+
| test("foo") {
336+
| assert(2 + 2 == 4)
337+
| println("$msg")
338+
| }
339+
|}
340+
|""".stripMargin
341+
)
327342
}

modules/integration/src/test/scala/scala/cli/integration/ScalaCliSuite.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ abstract class ScalaCliSuite extends munit.FunSuite {
2323
}
2424
}
2525

26-
override def munitTimeout: Duration = new FiniteDuration(240, TimeUnit.SECONDS)
26+
override def munitTimeout: Duration = new FiniteDuration(300, TimeUnit.SECONDS)
2727

2828
override def munitFixtures: List[Fixture[Unit]] = List(testStartEndLogger)
2929
def group: ScalaCliSuite.TestGroup = ScalaCliSuite.TestGroup.Third

0 commit comments

Comments
 (0)