Transcription: OpenAgents Episode 029 - Automating Tests

June 9, 2026 ยท View on GitHub

Source: https://twitter.com/OpenAgentsInc/status/1728590361805672788 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 029: Automating Tests We configure our test suite to run auto... Upload date: 20231126 Transcription model: mlx-whisper/mlx-community/whisper-tiny Generated at: 2026-06-01T20:34:20Z

Machine-generated transcript. Review speaker labels and wording before using this as quote-grade source material.

[00:00] Christopher David: All right, let's continue toward tests.

[00:07] Christopher David: I started this tweet and I liked it.

[00:09] Christopher David: I feel like programming is 60% developing the right mental model,

[00:14] Christopher David: 40% debugging and testing, 1% rating code,

[00:18] Christopher David: at least when you're solving a novel problem.

[00:20] Christopher David: I don't know how much we're solving novel problems,

[00:23] Christopher David: but yeah, that kind of resonates with me because

[00:28] Christopher David: I've certainly seen that the more we do on passing awesome context

[00:33] Christopher David: to a model call like GPT4,

[00:37] Christopher David: the better context you pass in, this is smarter of a response

[00:40] Christopher David: you'll get passing in like entire issue

[00:45] Christopher David: conversations, you get like really intelligent responses back

[00:50] Christopher David: and we're going to be getting into this 40% of testing now.

[00:57] Christopher David: We need to learn about how to automate this via GitHub action.

[01:02] Christopher David: So to recap over the last eight videos,

[01:11] Christopher David: we've been building a GitHub agent and beyond just coming up with code

[01:18] Christopher David: and making commits and pull requests which we've done.

[01:23] Christopher David: We also want to take advantage of the automation that GitHub enables.

[01:30] Christopher David: I'm kind of new to this so we're going to learn this together.

[01:37] Christopher David: I've never clicked on this before and hey look,

[01:39] Christopher David: Laravel, test a Laravel project.

[01:44] Christopher David: And so the idea that we want to get to here is

[01:50] Christopher David: when a PR is opened,

[01:54] Christopher David: we want the Laravel test suite, all these gorgeous tests that we wrote.

[02:01] Christopher David: Oops.

[02:05] Christopher David: I'm going to find out where that error is.

[02:19] Christopher David: I don't know why it does that.

[02:28] Christopher David: Anyway, we do have a beautiful test suite.

[02:32] Christopher David: What if I run a peer feature?

[02:41] Christopher David: I say we're using the same name needs to be code and comment.

[02:54] Christopher David: Okay, so we do have a beautiful test suite with

[03:01] Christopher David: let's call that fix.

[03:04] Christopher David: Dubakit command name.

[03:09] Christopher David: And one of our tests is taking a long time.

[03:12] Christopher David: We're going to go add that to the integration suite.

[03:17] Christopher David: So we get skipped during most runs.

[03:25] Christopher David: All right, we look like we broke some of these things.

[03:31] Christopher David: We will do this later.

[03:38] Christopher David: So what we want is for the Laravel test suite to run when a PR is open.

[03:59] Christopher David: We want the result of the test to be, you know,

[04:04] Christopher David: shown here and if tests fail,

[04:07] Christopher David: we want the agent to have the opportunity to identify why they fail.

[04:14] Christopher David: Plant testing, so also be added to integration.

[04:22] Christopher David: We want just our fast tests there.

[04:25] Christopher David: Okay, 70 passing tests, move slow tests and integration group.

[04:32] Christopher David: Okay, so let's learn about let's get have actions and test a Larevo project.

[04:42] Christopher David: That is what we want to do.

[04:44] Christopher David: So let's try it.

[04:46] Christopher David: Configure.

[04:47] Christopher David: Ooh.

[04:50] Christopher David: Oh, good.

[04:59] Christopher David: Let's do this.

[05:04] Christopher David: Let's do this.

[05:09] Christopher David: Let's do this.

[05:14] Christopher David: Let's do this.

[05:17] Christopher David: Let's do this.

[05:20] Christopher David: Let's do this.

[05:23] Christopher David: Let's do this.

[05:27] Christopher David: And this will run it on a push to main and a pull request to main.

[05:34] Christopher David: Let me keep it this out for now.

[05:42] Christopher David: Sure.

[05:47] Christopher David: That's weird.

[05:54] Christopher David: Okay.

[05:59] Christopher David: So now we get to see it step through this.

[06:06] Christopher David: Fail.

[06:08] Christopher David: Why did it fail?

[06:10] Christopher David: Your lock file does not contain a compatible set of packages.

[06:18] Christopher David: Please run composer update.

[06:28] Christopher David: Okay.

[06:32] Christopher David: Let's go get our good friend, chatty, GPT is help on this.

[06:46] Christopher David: I am trying to get test running automatically via GitHub actions.

[06:57] Christopher David: When I push to main rich, here is the Larevo.ml file.

[07:09] Christopher David: I'm automatically created by the GitHub suggested workflows thing.

[07:20] Christopher David: But I got this error.

[07:35] Christopher David: I'm going to get the code to compose or update locally.

[08:06] Christopher David: Okay.

[08:15] Christopher David: Oh.

[08:23] Christopher David: That's it.

[08:53] Christopher David: Okay.

[09:23] Christopher David: Thank you.

[09:54] Christopher David: I did that and got the same error.

[10:05] Christopher David: Should we run composer update in the script?

[10:14] Christopher David: Okay.

[10:39] Christopher David: Try clear cache.

[11:03] Christopher David: Okay.

[11:13] Christopher David: You said this.

[11:26] Christopher David: Okay.

[11:36] Christopher David: Okay.

[11:46] Christopher David: Yeah.

[11:53] Christopher David: The clear cache did not work either.

[12:07] Christopher David: Timber barely removed the dash queue fly from war for both output.

[12:25] Christopher David: What?

[12:29] Christopher David: Okay.

[12:39] Christopher David: Okay.

[13:09] Christopher David: Okay.

[13:39] Christopher David: Okay.

[13:50] Christopher David: Ah.

[13:59] Christopher David: Yeah.

[14:19] Christopher David: Try with PHP 8.1.

[14:38] Christopher David: Okay.

[14:48] Christopher David: Okay.

[14:58] Christopher David: Okay.

[15:08] Christopher David: Okay.

[15:23] Christopher David: Okay.

[15:53] Christopher David: Okay.

[16:03] Christopher David: Okay.

[16:15] Christopher David: Okay.

[16:24] Christopher David: Okay.

[16:34] Christopher David: Okay.

[16:39] Christopher David: Okay.

[16:44] Christopher David: Okay.

[16:49] Christopher David: Okay.

[16:59] Christopher David: Okay.

[17:04] Christopher David: Okay.

[17:09] Christopher David: Okay.

[17:14] Christopher David: Okay.

[17:39] Christopher David: Okay.

[18:09] Christopher David: Okay.

[18:27] Christopher David: Okay.

[18:57] Christopher David: Okay.

[19:27] Christopher David: Okay.

[19:55] Christopher David: Okay.

[19:59] Christopher David: all right, let's try this try add postgres

[20:15] Christopher David: add postgres service to Yammer installing the extension could be a pain in the butt I guess

[20:23] Christopher David: I mean the extension might already be present on that image so I'm guessing this uses

[20:28] Christopher David: a darker and I'm just not to experience with that

[20:40] Christopher David: oh it worked past past past oh a bunch of failed

[20:46] Christopher David: nice

[20:52] Christopher David: we manifest not found okay that's solvable

[21:06] Christopher David: a test pass test pass okay

[21:16] Christopher David: where did we put that little code snippet was that in envoyer

[21:36] Christopher David: hook run feet that's right there

[22:36] Christopher David: 18 maybe

[23:36] Christopher David: you

[23:50] Christopher David: building the front of assets

[24:08] Christopher David: here we got farther pass pass pass pass pass pass pass pass pass pass pass failed

[24:18] Christopher David: very test

[24:22] Christopher David: need to be

[24:26] Christopher David: integration test

[24:48] Christopher David: very test

[24:50] Christopher David: integration

[24:54] Christopher David: do the rest

[24:58] Christopher David: to

[25:08] Christopher David: to

[25:18] Christopher David: to

[26:28] Christopher David: to

[26:38] Christopher David: to

[26:48] Christopher David: to

[26:58] Christopher David: to

[27:08] Christopher David: check out

[27:18] Christopher David: test

[27:20] Christopher David: test pass

[27:24] Christopher David: test

[27:30] Christopher David: test

[27:32] Christopher David: call

[27:38] Christopher David: failing test

[27:44] Christopher David: test

[27:48] Christopher David: test

[27:54] Christopher David: test

[27:56] Christopher David: test

[28:00] Christopher David: test

[28:02] Christopher David: test

[28:06] Christopher David: test

[28:10] Christopher David: test

[28:12] Christopher David: test

[28:14] Christopher David: test

[28:17] Christopher David: test

[28:19] Christopher David: test

[28:21] Christopher David: test

[28:27] Christopher David: test

[28:31] Christopher David: test

[28:33] Christopher David: test

[28:35] Christopher David: test

[28:39] Christopher David: test

[28:41] Christopher David: test

[28:44] Christopher David: test

[28:46] Christopher David: test

[28:48] Christopher David: test

[28:50] Christopher David: test

[28:52] Christopher David: test

[28:54] Christopher David: test

[28:56] Christopher David: test

[28:58] Christopher David: test

[29:00] Christopher David: test

[29:02] Christopher David: test

[29:04] Christopher David: test

[29:06] Christopher David: test

[29:08] Christopher David: test

[29:10] Christopher David: test

[29:12] Christopher David: test

[29:14] Christopher David: test

[29:16] Christopher David: test

[29:20] Christopher David: test

[29:24] Christopher David: test

[29:26] Christopher David: test

[29:28] Christopher David: test

[29:30] Christopher David: test

[29:32] Christopher David: test

[29:34] Christopher David: test

[29:36] Christopher David: test

[29:38] Christopher David: test

[29:40] Christopher David: test

[29:42] Christopher David: test

[29:45] Christopher David: test

[29:46] Christopher David: test

[29:48] Christopher David: test

[29:50] Christopher David: test

[29:52] Christopher David: test

[29:54] Christopher David: test

[29:56] Christopher David: test

[29:58] Christopher David: test

[30:00] Christopher David: test

[30:02] Christopher David: test

[30:03] Christopher David: test

[30:04] Christopher David: test

[30:05] Christopher David: test

[30:06] Christopher David: test

[30:08] Christopher David: test

[30:10] Christopher David: test

[30:12] Christopher David: test

[30:14] Christopher David: test

[30:15] Christopher David: test

[30:17] Christopher David: test

[30:19] Christopher David: test

[30:21] Christopher David: test

[30:23] Christopher David: test

[30:25] Christopher David: test

[30:27] Christopher David: test

[30:29] Christopher David: test

[30:31] Christopher David: test

[30:33] Christopher David: test

[30:35] Christopher David: test

[30:36] Christopher David: test

[30:37] Christopher David: test

[30:39] Christopher David: test

[30:41] Christopher David: test

[30:42] Christopher David: test

[30:31] Christopher David: test

[30:31] Christopher David: test

[30:31] Christopher David: test

[30:31] Christopher David: test

[30:43] Christopher David: test

[30:47] Christopher David: test

[30:48] Christopher David: test

[30:49] Christopher David: test

[30:50] Christopher David: test

[30:51] Christopher David: test

[30:52] Christopher David: test

[30:53] Christopher David: test

[30:55] Christopher David: test

[30:56] Christopher David: test

[30:57] Christopher David: test

[30:58] Christopher David: test

[30:59] Christopher David: test

[31:00] Christopher David: test

[31:01] Christopher David: test

[31:02] Christopher David: test

[31:03] Christopher David: test

[31:04] Christopher David: test

[31:05] Christopher David: test

[31:06] Christopher David: test

[31:07] Christopher David: test

[31:08] Christopher David: test

[31:09] Christopher David: test

[31:10] Christopher David: test

[31:11] Christopher David: test

[31:14] Christopher David: test

[31:15] Christopher David: test

[31:16] Christopher David: test

[31:17] Christopher David: test

[31:18] Christopher David: test

[31:19] Christopher David: test

[31:20] Christopher David: test

[31:21] Christopher David: test

[31:22] Christopher David: test

[31:23] Christopher David: test

[31:25] Christopher David: test

[31:26] Christopher David: test

[31:27] Christopher David: test

[31:28] Christopher David: test

[31:29] Christopher David: test

[31:30] Christopher David: test

[31:31] Christopher David: test

[31:32] Christopher David: test

[31:33] Christopher David: test

[31:34] Christopher David: test

[31:35] Christopher David: test

[31:36] Christopher David: test

[31:37] Christopher David: test

[31:38] Christopher David: test

[31:39] Christopher David: test

[31:40] Christopher David: test

[31:41] Christopher David: test

[31:44] Christopher David: test

[31:45] Christopher David: test

[31:46] Christopher David: test

[31:47] Christopher David: test

[31:48] Christopher David: test

[31:49] Christopher David: test

[31:50] Christopher David: test

[31:51] Christopher David: test

[31:52] Christopher David: test

[31:53] Christopher David: test

[31:54] Christopher David: test

[31:55] Christopher David: test

[31:56] Christopher David: test

[31:57] Christopher David: test

[31:58] Christopher David: test

[31:59] Christopher David: test

[32:00] Christopher David: test

[32:01] Christopher David: test

[32:02] Christopher David: test

[32:03] Christopher David: test

[32:04] Christopher David: test

[32:05] Christopher David: test

[32:06] Christopher David: test

[32:07] Christopher David: test

[32:08] Christopher David: test

[32:09] Christopher David: test

[32:10] Christopher David: test

[32:11] Christopher David: test