---
title: "Invoking Other FinalBuilder Projects"
url: "https://courses.osherove.com/courses/automating-all-the-things-with-finalbuilder/invoking-other-finalbuilder-projects.md"
canonical: "https://courses.osherove.com/courses/automating-all-the-things-with-finalbuilder/invoking-other-finalbuilder-projects/"
tags: []
author: "Roy Osherove"
description: "Lesson 14 of 18 in Automating All the Things with FinalBuilder (Flow Control & Error Handling), 3:08. Free video by Roy Osherove."
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# Invoking Other FinalBuilder Projects

1. [Courses](https://courses.osherove.com/#courses)
2. [Automating All the Things with FinalBuilder](https://courses.osherove.com/courses/automating-all-the-things-with-finalbuilder/)
3. Flow Control & Error Handling

Lesson 14 of 18

Duration: 3:08 [Watch on YouTube](https://www.youtube.com/watch?v=wFdHT_w-Zbw)

## In this lesson

Roy Osherove reuses a whole project by including the calculator UI testing demo project that comes with [FinalBuilder](https://osherove.com/blog/2005/3/12/cooltool-finalbuilder-30-the-ultimate-build-management-and-a.html "[CoolTool] FinalBuilder 3.0 - the ultimate build management and automation tool (osherove.com)") in his own project with an include project action, which can also send variables to it and shares the host and environment variables. Once he puts it inside the try, the calculator tests run after the downloads, and their full log is included in the project's own build log.

## Transcript

400 words

[\[00:04\]](https://www.youtube.com/watch?v=wFdHT_w-Zbw&t=4s) Now let's say that we have multiple things it would like to test and some tests need to be repeated from multiple scripts. So I'm going to show you another FinalBuilder project one that for this reason does UI testing. So I'm going to open a project here called test calc. This is actually a demo project that comes with FinalBuilder. It's usually named calculator demo Windows 7, but I've just renamed it so it's easier to launch. If I just run this project, what you'll see that it does, I'm running it now, is it actually launches the calculator

[\[00:41\]](https://www.youtube.com/watch?v=wFdHT_w-Zbw&t=41s) And it does multiple actions on it. And let's say that we'd like to run this as part of our own project. So, I'm going to close And now let's say I want to invoke that external project. I can say FinalBuilder. If I search for that here, I can say include project here. And the project file would be

[\[01:12\]](https://www.youtube.com/watch?v=wFdHT_w-Zbw&t=72s) I'll just redirect to it. But really I can just say it is the FinalBuilder project directory /estcal. I can even send variables to the project before I load it. But right now, I don't need to send anything. It will also share any host variables and environment variables and send them to that project as if I ran it on its own. So now that will run

[\[01:44\]](https://www.youtube.com/watch?v=wFdHT_w-Zbw&t=104s) And let's make it run just after we do So I can probably just rename it to say ran calculator tests calc tests. Let's run this. What we should see oh project structure next sibling action can is not a catch or a finally.

[\[02:18\]](https://www.youtube.com/watch?v=wFdHT_w-Zbw&t=138s) Oh yeah, because we it's not part of a try, I guess. So let's put that as part of the try. And now let's try and do that. Okay, so it runs the download actions. It fills up all the stuff as we wanted to. And now it actually runs the calculator tests. So it's easy to reuse code and even full projects and it will all be part of our single log file at the end as well. So everything is going to be included by default.

[\[02:49\]](https://www.youtube.com/watch?v=wFdHT_w-Zbw&t=169s) So if you look at the build log, what we should see in the try is that we have calculator tests and then we have the full log for that as well included in our own local build file log.

## Related

- [Build Pattern: Extract Script](https://osherove.com/blog/2013/1/19/build-pattern-extract-script.html) · osherove.com

    Roy's build pattern for moving shared actions into their own script that other scripts call with parameter values, with one main script calling the others, as the include project action does here.

- [Visual vs. “Executable” Build Configurations](https://osherove.com/blog/2008/8/27/visual-vs-executable-build-configurations.html) · osherove.com

    Roy's comparison of FinalBuilder with Rake, which notes that FinalBuilder has tasks that invoke external build scripts, besides action lists that take parameters.

### Also linked in this lesson

#### osherove.com

- [\[CoolTool\] FinalBuilder 3.0 - the ultimate build management and automation tool](https://osherove.com/blog/2005/3/12/cooltool-finalbuilder-30-the-ultimate-build-management-and-a.html)

[Previous lesson Speed Things Up with Parallel Async Actions](https://courses.osherove.com/courses/automating-all-the-things-with-finalbuilder/speed-things-up-with-parallel-async-actions/) [Next lesson Useful General and Runtime Action Properties](https://courses.osherove.com/courses/automating-all-the-things-with-finalbuilder/useful-general-and-runtime-action-properties/)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
