degraph icon indicating copy to clipboard operation
degraph copied to clipboard

I know I have cycle and I want to include it in test.

Open pmajkutewicz opened this issue 10 years ago • 4 comments

Hi

I have 4 packages:

example.a, example.b, example.c, example.d

With cycle between a and c and that is ok.

My test:

assertThat(
classpath()
.noJars()
.including("example.**")
.allow(oneOf("example.a", "example.c"), oneOf("example.a", "example.c"))
, is(violationFree()))

fails with:

java.lang.AssertionError: 
Expected: is "de.schauderhaft.degraph.check.Check$$anon$1"
     but: Configuration{classpath = [snip]
includes = example.**
constraints = no cycles
} yields the following constraint violations: [Package](no cycles):
    example.a -> example.c
    example.c -> example.a

I've also tried adding .withSlicing("module", "example.(*).**") but I'm still getting assertion error. Is there a way to configure degraph for that kind of situation?

pmajkutewicz avatar Oct 30 '15 21:10 pmajkutewicz

Unfortunatly no, not with the current version.

It always checks for cycles.

I'm currently working on a reworked API for formulating tests, and the new version will

a) make the check for cycles optional b) will allow to ignore dependencies for the analysis

So in you example you could either not check for cycles at all, or ignore for example the dependency from example.c to example.a

schauder avatar Oct 30 '15 21:10 schauder

Oh nice, so second solution will solve my problem :).

Any ETA on new API ? (days, month, months?)

pmajkutewicz avatar Oct 30 '15 21:10 pmajkutewicz

Maybe end of the year, or early next year. I hope.

schauder avatar Oct 30 '15 21:10 schauder

OK, good to know. I'll wait. Thanks.

pmajkutewicz avatar Oct 30 '15 21:10 pmajkutewicz