I've taken a look at what changes are necessary to support IntelliJ, and found two main issues, both kindof related.
1. The first issue is our "debug" configuration. This is used to separate tests that are known to fail from working tests, while still allowing us to easily run failing tests via "sbt debug:test". This configuration ends up confusing IntelliJ and it doesn't add the the working test jars to the classpath. Only the debug test jars are on the classpath. Thoug, I'm not even sure we really need scala-debug anymore, so I propose that we just remove those directories and move the failing tests to test/scala and comment them out. If we want to test debug tests, we can just uncomment them. Removing the debug configuration from sbt allows IntelliJ to find the correct classpath for normal tests. 2. IntelliJ does not support sbt integration tests. This is basically the same issue as scala-debug, but for some reason IntelliJ finds the right classpath for test jars. However, this means the integration test jars are not on the classpath. So if you try to run all tests, it ends up complaining that it can't run the integration tests in the daffodil-cli modulue, causing it to not run any tests. I'm not even sure it's wroth trying to run the integration tests in IntelliJ, so I'm not sure this is something worth trying to support. Fortunately, all of the integration test classes start with "TestCLI", so it's not too hard to run all tests except these. So assuming we remove the scala-debug configuration, the following steps allow IntelliJ to work and run all tests: 1. Import Project > Select Daffodil directory 2. Import project from external model > sbt (make sure to have the sbt plugin installed) 3. Check "download library sources" 4. Check use sbt shell "for imports" and "for builds" 5. Uncheck allow overriding sbt version 6. Global settings > Maximum Heap size: 6144 MB 7. Finish 8. Build > Build Project (this should use SBT, output in the sbt shell) 9. Run > Edit Configurations 10. Click the Plus (+) > JUNit 11. Name: Run All Daffodil Tests 12. Test Kind > Pattern 13. Pattern: ^(?!.*TestCLI.*).*$ 14. Search for tests: In whole project With these steps, I was able to get IntelliJ to run all tests except for the integration tests. Unfortunately, about 50 tests still fail, but I think they all look to appear to be related to ClassLoader issues or finding some tests. I suspect these need code changes to be resolved. - Steve
