You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stefan Miklosovic (Jira)" <ji...@apache.org> on 2023/09/18 09:37:00 UTC

[jira] [Created] (CASSANDRA-18863) Some tests are depending on each other

Stefan Miklosovic created CASSANDRA-18863:
---------------------------------------------

             Summary: Some tests are depending on each other
                 Key: CASSANDRA-18863
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18863
             Project: Cassandra
          Issue Type: Improvement
          Components: Test/unit
            Reporter: Stefan Miklosovic


I noticed this first when dealing with (1)

Simple bash gives:
{code:java}
for i in $(find . -type f -name '*Test.java'); do imports=$(grep 'import org.apache.*Test;' $i | grep -v 'Abstract'); if [ x"$imports" != "x" ]; then echo $i $imports; fi; done./org/apache/cassandra/db/ColumnFamilyStoreTest.java import org.apache.cassandra.io.sstable.ScrubTest;
./org/apache/cassandra/db/compaction/CompactionsCQLTest.java import org.apache.cassandra.io.sstable.LegacySSTableTest;
./org/apache/cassandra/db/compaction/PartialCompactionsTest.java import org.apache.cassandra.db.DirectoriesTest;
./org/apache/cassandra/locator/ReconnectableSnitchHelperTest.java import org.apache.cassandra.net.MessagingServiceTest;
./org/apache/cassandra/tools/nodetool/ScrubToolTest.java import org.apache.cassandra.io.sstable.ScrubTest;
./org/apache/cassandra/tools/StandaloneUpgraderOnSStablesTest.java import org.apache.cassandra.io.sstable.LegacySSTableTest;
./org/apache/cassandra/tools/StandaloneVerifierTest.java import org.apache.cassandra.io.sstable.VerifyTest;
./org/apache/cassandra/tools/StandaloneVerifierOnSSTablesTest.java import org.apache.cassandra.io.sstable.VerifyTest;
./org/apache/cassandra/repair/asymmetric/DifferenceHolderTest.java import org.apache.cassandra.utils.MerkleTreesTest;
./org/apache/cassandra/repair/ValidatorTest.java import org.apache.cassandra.db.compaction.CompactionsTest;
./org/apache/cassandra/fql/FullQueryLoggerTest.java import org.apache.cassandra.utils.binlog.BinLogTest;
./org/apache/cassandra/index/sai/cql/InetAddressTypeEquivalencyTest.java import org.apache.cassandra.index.sai.cql.types.InetTest;
./org/apache/cassandra/io/compress/CompressedSequentialWriterTest.java import org.apache.cassandra.io.util.SequentialWriterTest;
./org/apache/cassandra/io/sstable/LegacySSTableTest.java import org.apache.cassandra.db.SinglePartitionSliceCommandTest;
./org/apache/cassandra/audit/BinAuditLoggerTest.java import org.apache.cassandra.utils.binlog.BinLogTest;
./org/apache/cassandra/cql3/validation/operations/CompactStorageSplit1Test.java import org.apache.cassandra.cql3.validation.entities.SecondaryIndexTest; {code}
If one goes one by one, there are some cases when one test is trully depending on another. I do not think this is a good practice at all.  Each test should be self-contained or at least all common parts which are reused should be extracted to some helper classes. As it is done right now, if one changes the implementation of some helper methods in on test, it might fail others. If it is extracted, it is more probable that a developer would check where that method is used additionally to the place a developer is focused on. Right now if a developer changes a method in a test that method is specified in, she does not have a clue that it might be used somewhere else.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org