{"id":13648923,"url":"https://github.com/scalatest/scalatest","last_synced_at":"2025-05-13T19:13:03.895Z","repository":{"id":37979411,"uuid":"9283927","full_name":"scalatest/scalatest","owner":"scalatest","description":"A testing tool for Scala and Java developers","archived":false,"fork":false,"pushed_at":"2025-03-24T01:25:58.000Z","size":50183,"stargazers_count":1158,"open_issues_count":531,"forks_count":335,"subscribers_count":53,"default_branch":"main","last_synced_at":"2025-04-25T18:25:10.150Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scalatest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/docjavatags.scala","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-07T21:55:49.000Z","updated_at":"2025-04-20T08:42:23.000Z","dependencies_parsed_at":"2024-04-24T04:24:15.783Z","dependency_job_id":"9b7aff1c-26bc-41bf-8f77-bbf2463b91a4","html_url":"https://github.com/scalatest/scalatest","commit_stats":{"total_commits":6093,"total_committers":64,"mean_commits":95.203125,"dds":0.3925816510750041,"last_synced_commit":"04044970b9e4135ea4473334da39aa7a6606ef62"},"previous_names":[],"tags_count":90,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalatest%2Fscalatest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalatest%2Fscalatest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalatest%2Fscalatest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalatest%2Fscalatest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scalatest","download_url":"https://codeload.github.com/scalatest/scalatest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250870270,"owners_count":21500455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:04:38.664Z","updated_at":"2025-04-25T18:25:21.644Z","avatar_url":"https://github.com/scalatest.png","language":"Scala","funding_links":[],"categories":["Scala","Table of Contents","测试","🛠️ Development Tooling \u003ca id=\"development-tooling\"\u003e\u003c/a\u003e","Unit Tests","Testing"],"sub_categories":["Testing","🧪 Testing \u0026 Debugging \u003ca id=\"testing--debugging\"\u003e\u003c/a\u003e"],"readme":"ScalaTest\n=========\n\n[![Build Status](https://travis-ci.org/scalatest/scalatest.png?branch=3.1.x)](https://travis-ci.org/scalatest/scalatest)\n\nScalaTest is a free, open-source testing toolkit for Scala and\nJava programmers.\n\nOfficial Website: http://www.scalatest.org/\n\nUsing ScalaTest\n---------------\n\n### Setup\n\nPlease visit [Download and Setup](https://www.scala-sbt.org/1.x/docs/Setup.html) for download and setup instructions.\n\n### Quick Start\n\nPlease visit [Quick Start](http://www.scalatest.org/quick_start) for steps to get started quickly.\n\n\nBuilding ScalaTest\n------------------\n\n### Pre-Requisites\n\nThe followings are needed for building ScalaTest:\n\n*   JDK 8\n*   [SBT 1.3.13](https://www.scala-sbt.org/1.x/docs/Setup.html)\n\nuse the following SBT options instead:\n\n    SBT_OPTS=\"-Xms512M -Xmx3000M -Xss1M -XX:NewRatio=8\"\n\n### Building and Running Tests\n\nThis command will build and run the regular tests:\n\n  `$ sbt test`\n\nTo include flicker tests, you'll need to set environment variable SCALATEST_RUN_FLICKER_TESTS=true: \n\n```\n\u003e export SCALATEST_RUN_FLICKER_TESTS=true\n\u003e sbt test\n```\n\nTo run generated all tests, you'll need to increase maximum heap size to at least -Xmx5000M, and use this command instead:\n\n    $ rm -rf gentests\n    $ sbt gentests/test\n  \nYou can also run different groups generated tests separately: \n    \n    $ rm -rf gentests\n    $ sbt genMustMatchersTests1/test\n    $ sbt genMustMatchersTests2/test\n    $ sbt genMustMatchersTests3/test\n    $ sbt genMustMatchersTests4/test\n    $ sbt genGenTests/test\n    $ sbt genTablesTests/test\n    $ sbt genInspectorsTests/test\n    $ sbt genInspectorsShorthandsTests1/test\n    $ sbt genInspectorsShorthandsTests2/test\n    $ sbt genTheyTests/test\n    $ sbt genContainTests1/test\n    $ sbt genContainTests2/test\n    $ sbt genSortedTests/test\n    $ sbt genLoneElementTests/test\n    $ sbt genEmptyTests/test\n\nWhat it does is simply switch to gentests project and run test.\n\nTo run scala-js tests: \n\n```\n$ sbt scalatestAppJS/clean\n$ sbt scalacticTestJS/test:compile\n$ sbt scalacticTestJS/test\n$ sbt scalatestTestJS/test:compile\n$ sbt scalatestTestJS/test\n```\n\nTo run scala-native tests: \n\n```\n$ sbt -Dscalatest.skip.jdk.check=true ++2.11.12 scalatestAppNative/clean\n$ sbt -Dscalatest.skip.jdk.check=true ++2.11.12 scalacticTestNative/test:compile\n$ sbt -Dscalatest.skip.jdk.check=true ++2.11.12 scalacticTestNative/test\n$ sbt -Dscalatest.skip.jdk.check=true ++2.11.12 scalatestTestNative/test:compile\n$ sbt -Dscalatest.skip.jdk.check=true ++2.11.12 scalatestTestNative/test\n```\n\n### Building Examples\n\nYou can build examples project using this command: \n\n  `$ sbt examples/compile`\n\n### Packaging\n\nYou can package the ScalaTest JAR file using this command:\n\n  `$ sbt package`\n\nThe resulting JAR file will be produced in target/scala-2.11/.\n\nYou can also publish it to your local Ivy repository using this command:\n\n  `$ sbt publishLocal`\n\nOr publish it to local maven repository using this command:\n\n  `$ sbt publishM2`\n\n### Publishing\n\nTo publish to Sonatype, you first need to make sure you have the following:\n\n*   A GPG client is installed on your command line path. For more information, please refer to [GNU Privacy Guard Website](http://www.gnupg.org/).\n*   You have created your GPG keys and distributed your public key to hkp://pool.sks-keyservers.net/. For more information, please refer to [How To Generate PGP Signatures With Maven](https://docs.sonatype.org/display/Repository/How+To+Generate+PGP+Signatures+With+Maven).\n*   You have been granted the right to publish using org.scalatest and org.scalactic domain.\n\nBy default, ScalaTest build will read your Sonatype credentials from ~/.ivy2/.credentials, which is a properties file that looks like this:\n\n    realm=Sonatype Nexus Repository Manager\n    host=oss.sonatype.org\n    user=xxxxxxxx\n    password=xxxxxxxx\n\nYou can use SCALATEST_NEXUS_LOGIN and SCALATEST_NEXUS_PASSWORD environment variables to override Sonatype credentials.\n\nFor signing, ScalaTest build will use ~/.gnupg/secring.gpg by default and prompt for GPG passphase if required.  Alternatively you can use SCALATEST_GPG_FILE to use a different GPG file, and use SCALATEST_GPG_PASSPHASE to provide GPG passphase to avoid input prompt.\n\nIf you would like to export a particular private key into a separate GPG file, you can use the following command:\n\n  `$ gpg --export-secret-keys example@example.com \u003e example-secret-key.gpg`\n\nWith Sonatype credentials and GPG file in place, you can now publish to Sonatype.\n\nBefore publishing any patch release, binary compatibility with previous version should be checked:\n\n    $ sbt ++2.11.12 scalactic/package scalactic/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestCore/package scalatestCore/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFeatureSpec/package scalatestFeatureSpec/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFlatSpec/package scalatestFlatSpec/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFreeSpec/package scalatestFreeSpec/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFunSuite/package scalatestFunSuite/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFunSpec/package scalatestFunSpec/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestPropSpec/package scalatestPropSpec/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestRefSpec/package scalatestRefSpec/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestWordSpec/package scalatestWordSpec/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestDiagrams/package scalatestDiagrams/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestMatchersCore/package scalatestMatchersCore/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestShouldMatchers/package scalatestShouldMatchers/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestMustMatchers/package scalatestMustMatchers/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalacticJS/package scalacticJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestCoreJS/package scalatestCoreJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFeatureSpecJS/package scalatestFeatureSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFlatSpecJS/package scalatestFlatSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFreeSpecJS/package scalatestFreeSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFunSuiteJS/package scalatestFunSuiteJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestFunSpecJS/package scalatestFunSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestPropSpecJS/package scalatestPropSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestWordSpecJS/package scalatestWordSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestDiagramsJS/package scalatestDiagramsJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestMatchersCoreJS/package scalatestMatchersCoreJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestShouldMatchersJS/package scalatestShouldMatchersJS/mimaReportBinaryIssues\n    $ sbt ++2.11.12 scalatestMustMatchersJS/package scalatestMustMatchersJS/mimaReportBinaryIssues\n\n    $ sbt ++2.12.17 scalactic/package scalactic/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestCore/package scalatestCore/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFeatureSpec/package scalatestFeatureSpec/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFlatSpec/package scalatestFlatSpec/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFreeSpec/package scalatestFreeSpec/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFunSuite/package scalatestFunSuite/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFunSpec/package scalatestFunSpec/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestPropSpec/package scalatestPropSpec/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestRefSpec/package scalatestRefSpec/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestWordSpec/package scalatestWordSpec/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestDiagrams/package scalatestDiagrams/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestMatchersCore/package scalatestMatchersCore/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestShouldMatchers/package scalatestShouldMatchers/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestMustMatchers/package scalatestMustMatchers/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalacticJS/package scalacticJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestCoreJS/package scalatestCoreJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFeatureSpecJS/package scalatestFeatureSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFlatSpecJS/package scalatestFlatSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFreeSpecJS/package scalatestFreeSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFunSuiteJS/package scalatestFunSuiteJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestFunSpecJS/package scalatestFunSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestPropSpecJS/package scalatestPropSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestWordSpecJS/package scalatestWordSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestDiagramsJS/package scalatestDiagramsJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestMatchersCoreJS/package scalatestMatchersCoreJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestShouldMatchersJS/package scalatestShouldMatchersJS/mimaReportBinaryIssues\n    $ sbt ++2.12.17 scalatestMustMatchersJS/package scalatestMustMatchersJS/mimaReportBinaryIssues\n\n    $ sbt ++2.13.12 scalactic/package scalactic/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestCore/package scalatestCore/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFeatureSpec/package scalatestFeatureSpec/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFlatSpec/package scalatestFlatSpec/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFreeSpec/package scalatestFreeSpec/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFunSuite/package scalatestFunSuite/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFunSpec/package scalatestFunSpec/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestPropSpec/package scalatestPropSpec/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestRefSpec/package scalatestRefSpec/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestWordSpec/package scalatestWordSpec/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestDiagrams/package scalatestDiagrams/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestMatchersCore/package scalatestMatchersCore/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestShouldMatchers/package scalatestShouldMatchers/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestMustMatchers/package scalatestMustMatchers/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalacticJS/package scalacticJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestCoreJS/package scalatestCoreJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFeatureSpecJS/package scalatestFeatureSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFlatSpecJS/package scalatestFlatSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFreeSpecJS/package scalatestFreeSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFunSuiteJS/package scalatestFunSuiteJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestFunSpecJS/package scalatestFunSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestPropSpecJS/package scalatestPropSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestWordSpecJS/package scalatestWordSpecJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestDiagramsJS/package scalatestDiagramsJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestMatchersCoreJS/package scalatestMatchersCoreJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestShouldMatchersJS/package scalatestShouldMatchersJS/mimaReportBinaryIssues\n    $ sbt ++2.13.12 scalatestMustMatchersJS/package scalatestMustMatchersJS/mimaReportBinaryIssues\n\nTo publish scalatest modules for jvm, js, native and dotty, use the following commands: \n\n    $ ./publish.sh\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalatest%2Fscalatest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscalatest%2Fscalatest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalatest%2Fscalatest/lists"}