Sorry I should've included the list of tests here. So far we've run into:
DicomIOTest, FhirIOTest, HL7v2IOTest, org.apache.beam.sdk.extensions.ml.*IT

Note the latter are called IT, but that package's build.gradle has a line
to scoop ITs into the :test task (addressing in [1]).

All of these tests are actually running pipelines so I think they'd be
difficult to mock.

[1] https://github.com/apache/beam/pull/13444

On Wed, Dec 2, 2020 at 3:28 PM Kyle Weaver <kcwea...@google.com> wrote:

> > Should we (do we) require unit tests to be hermetic?
>
> We should. Unit tests are hermetic by definition. That begs the definition
> of hermetic, but clearly the internet is not.
>
> > Personally I think these tests should be classified as integration tests
> (renamed to *IT, and run with the :integrationTest task)
>
> I'm not sure which tests you're talking about, but it may be better to
> make them hermetic through mocking, depending on the intent of the test.
>
> On Wed, Dec 2, 2020 at 1:22 PM Brian Hulette <bhule...@google.com> wrote:
>
>> I've been working with Niels Basjes on a standardized developer build
>> environment that can run `./gradlew check` [1]. We've run into issues
>> because several Java unit tests (class *Test, run with :test) are not
>> hermetic. They fail unless the environment they're running in has access to
>> the internet, and is authenticated to GCP with access to certain resources.
>> Of course the former isn't typically a blocker, but the latter certainly
>> can be.
>>
>> Personally I think these tests should be classified as integration tests
>> (renamed to *IT, and run with the :integrationTest task), but I realized I
>> don't know if we have a formal definition for what should be a unit test vs
>> an integration test. Should we (do we) require unit tests to be hermetic?
>>
>> Brian
>>
>> [1] https://github.com/apache/beam/pull/13308
>>
>

Reply via email to