You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by "pranavbhandari24 (via GitHub)" <gi...@apache.org> on 2023/07/20 17:15:53 UTC

[GitHub] [beam] pranavbhandari24 opened a new pull request, #27579: Add Integration/Load test Utilities.

pranavbhandari24 opened a new pull request, #27579:
URL: https://github.com/apache/beam/pull/27579

   Integration / Load test utilities.
   ------------------------
   
   This change adds the bare bones of the Integration/Load test framework. 
   
   Third-party resource managers will be added in separate PRs.
   
   Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:
   
    - [ ] Mention the appropriate issue in your description (for example: `addresses #123`), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
    - [ ] Update `CHANGES.md` with noteworthy changes.
    - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   See the [Contributor Guide](https://beam.apache.org/contribute) for more tips on [how to make review process smoother](https://beam.apache.org/contribute/get-started-contributing/#make-the-reviewers-job-easier).
   
   To check the build health, please visit [https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
   
   GitHub Actions Tests Status (on master branch)
   ------------------------------------------------------------------------------------------------
   [![Build python source distribution and wheels](https://github.com/apache/beam/workflows/Build%20python%20source%20distribution%20and%20wheels/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
   [![Python tests](https://github.com/apache/beam/workflows/Python%20tests/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Java tests](https://github.com/apache/beam/workflows/Java%20Tests/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Go tests](https://github.com/apache/beam/workflows/Go%20tests/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
   
   See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more information about GitHub Actions CI.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] pranavbhandari24 commented on a diff in pull request #27579: Add Integration/Load test Utilities.

Posted by "pranavbhandari24 (via GitHub)" <gi...@apache.org>.
pranavbhandari24 commented on code in PR #27579:
URL: https://github.com/apache/beam/pull/27579#discussion_r1269787265


##########
it/google-cloud-platform/build.gradle:
##########
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * License); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins { id 'org.apache.beam.module' }
+applyJavaNature(
+        automaticModuleName: 'org.apache.beam.it.gcp',
+)
+
+description = "Apache Beam :: IT :: Google Cloud Platform"
+ext.summary = "Integration test utilities for Google Cloud Platform."
+
+dependencies {
+    implementation enforcedPlatform(library.java.google_cloud_platform_libraries_bom)
+    implementation project(path: ":sdks:java:core", configuration: "shadow")
+    implementation project(path: ":runners:google-cloud-dataflow-java")
+    implementation project(path: ":it:conditions", configuration: "shadow")
+    implementation project(path: ":it:truthmatchers", configuration: "shadow")
+    implementation library.java.slf4j_api
+    implementation library.java.vendored_guava_26_0_jre
+    implementation library.java.jackson_core
+    implementation library.java.jackson_databind
+    implementation 'org.apache.hadoop:hadoop-common:3.3.5'
+    implementation 'org.apache.avro:avro:1.11.1'
+    implementation 'org.apache.parquet:parquet-avro:1.12.0'
+    implementation 'org.apache.parquet:parquet-common:1.12.0'
+    implementation 'org.apache.parquet:parquet-hadoop:1.12.0'
+    implementation library.java.gax
+    implementation library.java.google_api_common
+    implementation library.java.protobuf_java_util
+    implementation library.java.protobuf_java
+    implementation 'org.threeten:threetenbp:1.6.8'

Review Comment:
   This is due to compatibility reasons. Bigtable uses threeten in its API, hence we have to use it. I'll move this to the global list of dependencies.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] github-actions[bot] commented on pull request #27579: Add Integration/Load test Utilities.

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #27579:
URL: https://github.com/apache/beam/pull/27579#issuecomment-1644369314

   Assigning reviewers. If you would like to opt out of this review, comment `assign to next reviewer`:
   
   R: @Abacn for label java.
   R: @damccorm for label build.
   
   Available commands:
   - `stop reviewer notifications` - opt out of the automated review tooling
   - `remind me after tests pass` - tag the comment author after tests pass
   - `waiting on author` - shift the attention set back to the author (any comment or push by the author will return the attention set to the reviewers)
   
   The PR bot will only process comments in the main thread (not review comments).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] johnjcasey merged pull request #27579: Add Integration/Load test Utilities.

Posted by "johnjcasey (via GitHub)" <gi...@apache.org>.
johnjcasey merged PR #27579:
URL: https://github.com/apache/beam/pull/27579


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] kennknowles commented on a diff in pull request #27579: Add Integration/Load test Utilities.

Posted by "kennknowles (via GitHub)" <gi...@apache.org>.
kennknowles commented on code in PR #27579:
URL: https://github.com/apache/beam/pull/27579#discussion_r1269770647


##########
buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy:
##########
@@ -813,6 +814,7 @@ class BeamModulePlugin implements Plugin<Project> {
         testcontainers_mysql                        : "org.testcontainers:mysql:$testcontainers_version",
         testcontainers_postgresql                   : "org.testcontainers:postgresql:$testcontainers_version",
         testcontainers_rabbitmq                     : "org.testcontainers:rabbitmq:$testcontainers_version",
+        truth                                       : "com.google.truth:truth:1.0.1",

Review Comment:
   I know that Google prefers truth internally. Beam already pulls in hamcrest and JUnit for everything. It may create an annoying situation to have all these very similar frameworks in the project. Is there a special reason to use truth   now?



##########
it/google-cloud-platform/src/main/java/org/apache/beam/it/gcp/GCPBaseIT.java:
##########
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.beam.it.gcp;
+
+import com.google.api.gax.core.CredentialsProvider;
+import com.google.api.gax.core.FixedCredentialsProvider;
+import com.google.auth.Credentials;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.apache.beam.it.common.TestProperties;
+import org.junit.Before;
+
+@SuppressWarnings("nullness")

Review Comment:
   Ah, this is interesting. Because it is in `src/main` it is not automatically skipped. [We do have checker disabled in all tests](https://github.com/apache/beam/blob/51512cadf2d65c1e0dc3f19e3287759a1dd78b2f/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy#L1098), because it does not work well with JUnit APIs.
   
   I don't have enough context on the design of the modules to know if we should change anything here, so I am just sharing this as an FYI that we may want to work on.



##########
it/google-cloud-platform/build.gradle:
##########
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * License); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins { id 'org.apache.beam.module' }
+applyJavaNature(
+        automaticModuleName: 'org.apache.beam.it.gcp',
+)
+
+description = "Apache Beam :: IT :: Google Cloud Platform"
+ext.summary = "Integration test utilities for Google Cloud Platform."
+
+dependencies {
+    implementation enforcedPlatform(library.java.google_cloud_platform_libraries_bom)
+    implementation project(path: ":sdks:java:core", configuration: "shadow")
+    implementation project(path: ":runners:google-cloud-dataflow-java")
+    implementation project(path: ":it:conditions", configuration: "shadow")
+    implementation project(path: ":it:truthmatchers", configuration: "shadow")
+    implementation library.java.slf4j_api
+    implementation library.java.vendored_guava_26_0_jre
+    implementation library.java.jackson_core
+    implementation library.java.jackson_databind
+    implementation 'org.apache.hadoop:hadoop-common:3.3.5'
+    implementation 'org.apache.avro:avro:1.11.1'
+    implementation 'org.apache.parquet:parquet-avro:1.12.0'
+    implementation 'org.apache.parquet:parquet-common:1.12.0'
+    implementation 'org.apache.parquet:parquet-hadoop:1.12.0'
+    implementation library.java.gax
+    implementation library.java.google_api_common
+    implementation library.java.protobuf_java_util
+    implementation library.java.protobuf_java
+    implementation 'org.threeten:threetenbp:1.6.8'

Review Comment:
   Even though joda time is deprecated, it is what Beam uses. We should use it here too, and change as part of a global process. Is there a reason that we cannot?
   
   And if we keep threeten then it should go in the global list of dependencies. But unless there is a special compatibility reason with other libraries we should use joda.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] kennknowles commented on a diff in pull request #27579: Add Integration/Load test Utilities.

Posted by "kennknowles (via GitHub)" <gi...@apache.org>.
kennknowles commented on code in PR #27579:
URL: https://github.com/apache/beam/pull/27579#discussion_r1321711598


##########
it/common/src/main/java/org/apache/beam/it/common/utils/ResourceManagerUtils.java:
##########
@@ -0,0 +1,208 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.beam.it.common.utils;
+
+import static java.lang.Math.min;
+import static org.apache.beam.vendor.guava.v26_0_jre.com.google.common.base.Preconditions.checkArgument;
+import static org.apache.beam.vendor.guava.v26_0_jre.com.google.common.hash.Hashing.goodFastHash;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.Random;
+import java.util.regex.Pattern;
+import javax.annotation.Nullable;
+import org.apache.beam.it.common.ResourceManager;
+import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.hash.HashFunction;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/** Common utilities for ResourceManager implementations. */
+public class ResourceManagerUtils {
+
+  private static final Logger LOG = LoggerFactory.getLogger(ResourceManagerUtils.class);
+
+  private static final int MIN_PROJECT_ID_LENGTH = 4;
+  private static final int MAX_PROJECT_ID_LENGTH = 30;
+  private static final Pattern ILLEGAL_PROJECT_CHARS = Pattern.compile("[^a-zA-Z0-9-!:\\.']");
+  private static final String TIME_ZONE = "UTC";
+
+  /**
+   * Generates a new id string from an existing one.
+   *
+   * @param id The id string to generate a new id from.
+   * @param targetLength The length of the new id to generate. Must be greater than 8.
+   */
+  public static String generateNewId(String id, int targetLength) {
+    if (id.length() <= targetLength) {
+      return id;
+    }
+
+    if (targetLength <= 8) {
+      throw new IllegalArgumentException("targetLength must be greater than 8");
+    }
+
+    HashFunction hashFunction = goodFastHash(32);
+    String hash = hashFunction.hashUnencodedChars(id).toString();
+    return id.substring(0, targetLength - hash.length() - 1) + "-" + hash;
+  }
+
+  /**
+   * Generates a generic resource id from a given string, avoiding characters specified in the
+   * illegalChars Pattern. The length of the generated string ID will not exceed the length
+   * specified by targetLength.
+   *
+   * @param baseString the base ID to generate the resource ID from.
+   * @param illegalChars a pattern of characters to remove from the generated ID.
+   * @param replaceChar the character to replace all illegal characters with.
+   * @param targetLength the max length of the generated ID.
+   * @return the generated resource ID.
+   */
+  public static String generateResourceId(
+      String baseString,
+      Pattern illegalChars,
+      String replaceChar,
+      int targetLength,
+      DateTimeFormatter timeFormat) {
+    // first, make sure the baseString, typically the test ID, is not empty
+    checkArgument(baseString.length() != 0, "baseString cannot be empty.");
+
+    // next, replace all illegal characters from given string with given replacement character
+    String illegalCharsRemoved =
+        illegalChars.matcher(baseString.toLowerCase()).replaceAll(replaceChar);
+
+    // finally, append the date/time and return the substring that does not exceed the length limit
+    LocalDateTime localDateTime = LocalDateTime.now(ZoneId.of(TIME_ZONE));
+    String timeAddOn = localDateTime.format(timeFormat);
+    return illegalCharsRemoved.subSequence(
+            0, min(targetLength - timeAddOn.length() - 1, illegalCharsRemoved.length()))
+        + replaceChar
+        + localDateTime.format(timeFormat);
+  }
+
+  /** Generates random letter for padding. */
+  public static char generatePadding() {
+    Random random = new Random();
+    return (char) ('a' + random.nextInt(26));
+  }
+
+  /**
+   * Checks whether the given project ID is valid according to GCP constraints.
+   *
+   * @param idToCheck the project ID to check.
+   * @throws IllegalArgumentException if the project ID is invalid.
+   */
+  public static void checkValidProjectId(String idToCheck) {
+    if (idToCheck.length() < MIN_PROJECT_ID_LENGTH) {
+      throw new IllegalArgumentException("Project ID " + idToCheck + " cannot be empty.");
+    }
+    if (idToCheck.length() > MAX_PROJECT_ID_LENGTH) {
+      throw new IllegalArgumentException(
+          "Project ID "
+              + idToCheck
+              + " cannot be longer than "
+              + MAX_PROJECT_ID_LENGTH
+              + " characters.");
+    }
+    if (ILLEGAL_PROJECT_CHARS.matcher(idToCheck).find()) {
+      throw new IllegalArgumentException(
+          "Project ID "
+              + idToCheck
+              + " is not a valid ID. Only letters, numbers, hyphens, single quotes, colon, dot and"
+              + " exclamation points are allowed.");
+    }
+  }
+
+  /**
+   * Cleanup Resources from the given ResourceManagers. It will guarantee that all the cleanups are
+   * invoked, but still throws / bubbles the first exception at the end if something went wrong.
+   *
+   * @param managers Varargs of the managers to clean
+   */
+  public static void cleanResources(ResourceManager... managers) {
+
+    if (managers == null || managers.length == 0) {
+      return;
+    }
+
+    Exception bubbleException = null;
+
+    for (ResourceManager manager : managers) {
+      if (manager == null) {
+        continue;
+      }
+      try {
+        LOG.info("Cleaning up resource manager {}", manager.getClass().getSimpleName());
+        manager.cleanupAll();
+      } catch (Exception e) {
+        LOG.error("Error cleaning the resource manager {}", manager.getClass().getSimpleName());
+        if (bubbleException == null) {
+          bubbleException = e;
+        }
+      }
+    }
+
+    if (bubbleException != null) {
+      throw new RuntimeException("Error cleaning up resources", bubbleException);
+    }
+  }
+
+  /**
+   * Generates a password using random characters for tests.
+   *
+   * <p>Note: The password generated is not cryptographically secure and should only be used in

Review Comment:
   I missed this in the epic review. Because random people on the internet are doing generic searches for vulnerabilities, this will get reported over and over even if it is not a real vulnerability. Can you just change it to be something that _is_ secure, or find a way to eliminate the need for it?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] codecov[bot] commented on pull request #27579: Add Integration/Load test Utilities.

Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #27579:
URL: https://github.com/apache/beam/pull/27579#issuecomment-1644331490

   ## [Codecov](https://app.codecov.io/gh/apache/beam/pull/27579?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   > Merging [#27579](https://app.codecov.io/gh/apache/beam/pull/27579?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) (efcd545) into [master](https://app.codecov.io/gh/apache/beam/commit/3d501ee9dc208af2efef009daa98c49819b73ddc?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) (3d501ee) will **increase** coverage by `0.00%`.
   > The diff coverage is `n/a`.
   
   ```diff
   @@           Coverage Diff           @@
   ##           master   #27579   +/-   ##
   =======================================
     Coverage   71.14%   71.14%           
   =======================================
     Files         861      861           
     Lines      104570   104568    -2     
   =======================================
     Hits        74398    74398           
   + Misses      28623    28621    -2     
     Partials     1549     1549           
   ```
   
   | Flag | Coverage Δ | |
   |---|---|---|
   | python | `80.33% <ø> (+<0.01%)` | :arrow_up: |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
   
   | [Impacted Files](https://app.codecov.io/gh/apache/beam/pull/27579?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
   |---|---|---|
   | [...pkg/beam/runners/prism/internal/jobservices/job.go](https://app.codecov.io/gh/apache/beam/pull/27579?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c2Rrcy9nby9wa2cvYmVhbS9ydW5uZXJzL3ByaXNtL2ludGVybmFsL2pvYnNlcnZpY2VzL2pvYi5nbw==) | `69.64% <ø> (+1.22%)` | :arrow_up: |
   | [...m/runners/prism/internal/jobservices/management.go](https://app.codecov.io/gh/apache/beam/pull/27579?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c2Rrcy9nby9wa2cvYmVhbS9ydW5uZXJzL3ByaXNtL2ludGVybmFsL2pvYnNlcnZpY2VzL21hbmFnZW1lbnQuZ28=) | `62.00% <ø> (-0.19%)` | :arrow_down: |
   
   ... and [5 files with indirect coverage changes](https://app.codecov.io/gh/apache/beam/pull/27579/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   
   :mega: We’re building smart automated test selection to slash your CI/CD build times. [Learn more](https://about.codecov.io/iterative-testing/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] pranavbhandari24 commented on a diff in pull request #27579: Add Integration/Load test Utilities.

Posted by "pranavbhandari24 (via GitHub)" <gi...@apache.org>.
pranavbhandari24 commented on code in PR #27579:
URL: https://github.com/apache/beam/pull/27579#discussion_r1269789033


##########
buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy:
##########
@@ -813,6 +814,7 @@ class BeamModulePlugin implements Plugin<Project> {
         testcontainers_mysql                        : "org.testcontainers:mysql:$testcontainers_version",
         testcontainers_postgresql                   : "org.testcontainers:postgresql:$testcontainers_version",
         testcontainers_rabbitmq                     : "org.testcontainers:rabbitmq:$testcontainers_version",
+        truth                                       : "com.google.truth:truth:1.0.1",

Review Comment:
   I'm not sure if there is a reason we use truth instead of hamcrest. However, all of our matchers are built on top of truth, so changing this now will be a large refactor. We can consider moving to hamcrest after the migration?
   
   cc @bvolpato 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org