JUnit assertions should not be made from the run method of a Runnable, because failed assertions result in AssertionErrors being thrown. If the error is thrown from a thread other than the one that ran the test, the thread will exit but the test won’t fail.

Noncompliant Code Example

public void run() {
  // ...
  Assert.assertEquals(expected, actual);  // Noncompliant
}